diff --git a/src/app/release-notes/[version]/page.tsx b/src/app/release-notes/[version]/page.tsx
index 8992c4f..fd3e332 100644
--- a/src/app/release-notes/[version]/page.tsx
+++ b/src/app/release-notes/[version]/page.tsx
@@ -1,5 +1,6 @@
"use client";
+import React, { useState, useCallback } from 'react';
import Footer from "@/components/footer";
import { Navigation } from "@/components/navigation";
import ReleaseNote from "@/components/release-note";
@@ -7,6 +8,50 @@ import { Button } from "@/components/ui/button";
import { releaseNotes } from "@/lib/release-notes";
import Link from "next/link";
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 default function ReleaseNotePage() {
const params = useParams<{ version: string }>();
@@ -16,7 +61,9 @@ export default function ReleaseNotePage() {
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,37 @@ export default function ReleaseNotePage() {
);
}
+
+ const prevNote = releaseNotes[currentIndex + 1];
+ const nextNote = releaseNotes[currentIndex - 1];
+
return (
-
-
+
+
+
+
+
+
+
+
+ {prevNote && (
+
+
+
+ )}
+ {nextNote && (
+
+
+
+ )}
+
+
{/* At the bottom of the page */}