1- import { NavLink , Outlet } from "react-router-dom" ;
1+ import { NavLink , Outlet , useNavigate } from "react-router-dom" ;
22import { Soon } from "@/components/Soon" ;
3+ import { DocsResponsiveSidebar } from "@/components/DocsResponsiveSidebar" ;
34
45const Reference = ( ) => {
6+ const navigate = useNavigate ( ) ;
57 const packages = [
68 "constructo" ,
7- "serendipity" ,
9+ "serendipity" ,
810 "effulgence" ,
911 "tevun" ,
1012 "http" ,
@@ -13,35 +15,28 @@ const Reference = () => {
1315 "arceau" ,
1416 ] ;
1517
18+ const sidebarItems = packages . map ( packageName => ( {
19+ id : packageName ,
20+ label : packageName ,
21+ level : 0
22+ } ) ) ;
23+
24+ const handleItemClick = ( id : string ) => {
25+ navigate ( `/docs/reference/${ id } ` ) ;
26+ } ;
27+
1628 return (
1729 < div className = "flex gap-8" >
18- { /* Sumário - Coluna Esquerda */ }
19- < div className = "w-64 flex-shrink-0" >
20- < div className = "sticky top-6 p-4" >
21- < nav className = "space-y-2" >
22- < h3 className = "text-sm font-semibold text-foreground mb-3" > Pacotes & Ferramentas </ h3 >
23- { packages . map ( packageName => (
24- < NavLink
25- key = { packageName }
26- to = { `/docs/reference/${ packageName } ` }
27- className = { ( { isActive } ) =>
28- `flex items-center justify-between w-full text-left text-sm py-2 px-2 rounded transition-colors ${
29- isActive
30- ? "text-primary bg-primary/10"
31- : "text-muted-foreground hover:text-primary hover:bg-primary/5"
32- } `
33- }
34- >
35- < span > { packageName } </ span >
36- < Soon className = "ml-2" />
37- </ NavLink >
38- ) ) }
39- </ nav >
40- </ div >
41- </ div >
30+ { /* Sidebar responsivo */ }
31+ < DocsResponsiveSidebar
32+ items = { sidebarItems }
33+ onItemClick = { handleItemClick }
34+ title = "Pacotes & Ferramentas"
35+ description = "Navegue pelos packages e ferramentas disponíveis"
36+ />
4237
43- { /* Conteúdo Principal - Coluna Direita */ }
44- < div className = "flex-1 border-l pl-8" >
38+ { /* Conteúdo Principal */ }
39+ < div className = "flex-1 lg: border-l lg: pl-8" >
4540 < Outlet />
4641 </ div >
4742 </ div >
0 commit comments