diff --git a/src/app/wiki/page.tsx b/src/app/wiki/page.tsx index 2f0f784..488402f 100644 --- a/src/app/wiki/page.tsx +++ b/src/app/wiki/page.tsx @@ -1,4 +1,9 @@ "use client"; + +import { useState } from 'react'; +import { useRouter, useSearchParams } from 'next/navigation'; +import { Suspense } from 'react'; +import { Search, ChevronRight, Book, Code, FileText, HelpCircle, ThumbsUp, ThumbsDown, Github, Users, MapPin, MessageCircle, Calendar } from 'lucide-react'; import Fuse from 'fuse.js'; import { useState, useEffect, useMemo } from 'react'; import { Search, ChevronRight, Book, Code, FileText, HelpCircle, ThumbsUp, ThumbsDown, Github, Users, MapPin, MessageCircle, Calendar, X } from 'lucide-react'; @@ -43,6 +48,10 @@ const categories = [ } ]; +function WikiPageContent() { + const router = useRouter(); + const searchParams = useSearchParams(); + const [searchQuery, setSearchQuery] = useState(""); /** * Converts a kebab-case slug into a human-readable Title Case label. * e.g. "community-offerings" → "Community Offerings" @@ -151,6 +160,16 @@ function highlightMatch(text: string, indices?: readonly [number, number][]) { }); }, [activeArticle]); + const activeArticleParam = searchParams.get('article'); + // Ensure activeArticle is a valid article in wikiContent, otherwise default to "intro" + const activeArticle = activeArticleParam && wikiContent[activeArticleParam] + ? activeArticleParam + : "intro"; + + const handleArticleChange = (id: string) => { + router.push(`/wiki?article=${id}`, { scroll: false }); + }; + return (