blog / src /config /navBarConfig.ts
cacode's picture
Upload 434 files
96dd062 verified
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),
};