diff --git a/src/app/release-notes/[version]/page.tsx b/src/app/release-notes/[version]/page.tsx
index 67418c8..12dc3ba 100644
--- a/src/app/release-notes/[version]/page.tsx
+++ b/src/app/release-notes/[version]/page.tsx
@@ -1,11 +1,56 @@
+import React, { useState, useCallback } from 'react';
import Footer from "@/components/footer";
import { Navigation } from "@/components/navigation";
import ReleaseNote from "@/components/release-note";
import { Button } from "@/components/ui/button";
import { releaseNotes } from "@/lib/release-notes";
import Link from "next/link";
-import { redirect } from "next/navigation";
+import { redirect, useParams } from "next/navigation";
+import { ChevronLeft, ChevronRight, ChevronDown } from 'lucide-react';
+
+const VersionList = React.memo(({ currentVersion }: { currentVersion: string }) => {
+ const [isOpen, setIsOpen] = useState(false);
+
+ const toggleDropdown = useCallback(() => {
+ setIsOpen(prev => !prev);
+ }, []);
+
+ return (
+
+
+
+ {isOpen && (
+
+ {releaseNotes.map((note) => (
+
+ {note.version}
+
+ ))}
+
+ )}
+
+
+ );
+});
+
+VersionList.displayName = 'VersionList';
export async function generateStaticParams() {
return [{version: "latest"}, ...releaseNotes.map((note) => ({ version: note.version }))];
@@ -18,7 +63,9 @@ export default function ReleaseNotePage({ params }: { params: { version: string
return redirect(`/release-notes/${releaseNotes[0].version}`);
}
- const releaseNote = releaseNotes.find((note) => note.version === version);
+ const currentIndex = releaseNotes.findIndex((note) => note.version === version);
+ const releaseNote = releaseNotes[currentIndex];
+
if (!releaseNote) {
return (
@@ -33,9 +80,39 @@ export default function ReleaseNotePage({ params }: { params: { version: string
);
}
+
+ const prevNote = releaseNotes[currentIndex + 1];
+ const nextNote = releaseNotes[currentIndex - 1];
+
return (
-
-
+
+
+
+
+
+
+
+
+ {prevNote && (
+
+
+
+ )}
+ {nextNote && (
+
+
+
+ )}
+
+
+
+ {/* At the bottom of the page */}
);
}