| import { |
| LinkPreset, |
| type NavBarConfig, |
| type NavBarLink, |
| type NavBarSearchConfig, |
| NavBarSearchMethod, |
| } from "../types/config"; |
| import type { AdminNavItem, AdminNavPreset } from "@/types/admin"; |
| import { adminConfig } from "./adminData"; |
|
|
| const presetMap: Record<AdminNavPreset, LinkPreset> = { |
| home: LinkPreset.Home, |
| archive: LinkPreset.Archive, |
| about: LinkPreset.About, |
| friends: LinkPreset.Friends, |
| sponsor: LinkPreset.Sponsor, |
| guestbook: LinkPreset.Guestbook, |
| bangumi: LinkPreset.Bangumi, |
| }; |
|
|
| const resolveNavItem = (item: AdminNavItem): NavBarLink | LinkPreset => { |
| if ("preset" in item) { |
| return presetMap[item.preset]; |
| } |
|
|
| return { |
| ...item, |
| children: item.children?.map(resolveNavItem), |
| }; |
| }; |
|
|
| export const navBarSearchConfig: NavBarSearchConfig = { |
| method: NavBarSearchMethod.PageFind, |
| }; |
|
|
| export const navBarConfig: NavBarConfig = { |
| links: adminConfig.navbar.links.map(resolveNavItem), |
| }; |
|
|