'use client'; import type { Route } from 'next'; import Link from 'next/link'; import { usePathname } from 'next/navigation'; import { allContents } from 'contentlayer/generated'; import { useNav } from '~/contexts/nav'; import { Section } from './Section'; const items = allContents.map((content) => ({ title: content.title, category: content.category, slug: content.slug, href: content.url, })); function transformItemsByCategory(allContents: typeof items) { return allContents.reduce>((accumulator: any, content) => { if (!accumulator[content.category]) { accumulator[content.category] = []; } accumulator[content.category].push(content); return accumulator; }, {}); } const itemsByCategory = transformItemsByCategory(items); export function Sidebar() { const pathname = usePathname(); const { setOpened } = useNav(); return (
{Object.keys(itemsByCategory).map((category, idx) => (
{itemsByCategory[category]?.map((member, index) => ( setOpened(false)} title={member.title} >
{member.title}
))}
))}
); }