1import { useMemo, useState } from 'react';
2import { Link, NavLink } from 'react-router-dom';
3import PublicLayout from '../../components/Layout/PublicLayout';
4import { docGroups } from './docsData';
7export default function DocsLayout({ children }) {
8 const [q, setQ] = useState('');
10 const filtered = useMemo(() => {
11 if (!q.trim()) return docGroups;
12 const query = q.toLowerCase();
16 items: g.items.filter((i) =>
17 i.title.toLowerCase().includes(query) ||
18 i.summary?.toLowerCase().includes(query)
21 .filter((g) => g.items.length > 0);
26 <div className="docs-container">
27 <aside className="docs-sidebar">
28 <div className="docs-search">
29 <span className="material-symbols-outlined">search</span>
32 placeholder="Search docs..."
34 onChange={(e) => setQ(e.target.value)}
35 aria-label="Search documentation"
38 <nav className="docs-nav">
39 {filtered.map((group) => (
40 <div className="nav-section" key={group.id}>
41 <h3>{group.title}</h3>
43 {group.items.map((item) => (
46 to={`/docs/${item.slug}`}
47 className={({ isActive }) => `nav-link ${isActive ? 'active' : ''}`}
49 <span className="material-symbols-outlined" aria-hidden="true">{item.icon}</span>
50 <span>{item.title}</span>
59 <main className="docs-content">