feat: unify website and certificate management

This commit is contained in:
ryan
2026-03-13 00:01:33 +08:00
parent 238546b358
commit e736bcd51a
12 changed files with 1064 additions and 994 deletions
+22 -6
View File
@@ -16,18 +16,34 @@ export function isPathActive(pathname: string, href: string) {
return normalizedPathname === '/';
}
return normalizedPathname === href || normalizedPathname.startsWith(`${href}/`);
return (
normalizedPathname === href || normalizedPathname.startsWith(`${href}/`)
);
}
export function isNavigationItemActive(pathname: string, item: NavigationItem): boolean {
return isPathActive(pathname, item.href) || item.children?.some((child) => isNavigationItemActive(pathname, child)) || false;
export function isNavigationItemActive(
pathname: string,
item: NavigationItem,
): boolean {
return (
isPathActive(pathname, item.href) ||
item.children?.some((child) => isNavigationItemActive(pathname, child)) ||
false
);
}
export function flattenNavigationItems(items: NavigationItem[]): NavigationItem[] {
return items.flatMap((item) => [item, ...(item.children ? flattenNavigationItems(item.children) : [])]);
export function flattenNavigationItems(
items: NavigationItem[],
): NavigationItem[] {
return items.flatMap((item) => [
item,
...(item.children ? flattenNavigationItems(item.children) : []),
]);
}
export function getCurrentNavigationItem(pathname: string): NavigationItem | undefined {
export function getCurrentNavigationItem(
pathname: string,
): NavigationItem | undefined {
const findMatch = (items: NavigationItem[]): NavigationItem | undefined => {
for (const item of items) {
if (item.children) {