import { ensureLang } from '../utils/lang' import guideLocale from '../i18n/pages/guide.json' import componentLocale from '../i18n/pages/component.json' function getGuideSidebar() { return Object.fromEntries( Object.entries(guideLocale).map(([lang, val]) => [ lang, Object.values(val).map((item) => mapPrefix(item, lang)), ]) ) } function getComponentsSideBar() { return Object.fromEntries( Object.entries(componentLocale).map(([lang, val]) => [ lang, Object.values(val).map((item) => mapPrefix(item, lang, '/component')), ]) ) } // return sidebar with language configs. // this might create duplicated data but the overhead is ignorable const getSidebars = () => { return { '/guide/': getGuideSidebar(), '/component/': getComponentsSideBar(), } } type Item = { text: string children?: Item[] link?: string } function mapPrefix(item: Item, lang: string, prefix = '') { if (item.children && item.children.length > 0) { return { ...item, children: item.children.map((child) => mapPrefix(child, lang, prefix)), } } return { ...item, link: `${ensureLang(lang)}${prefix}${item.link}`, } } export const sidebars = getSidebars()