AwsLinker/lib/navigation-config.ts

127 lines
3.2 KiB
TypeScript
Raw Permalink Normal View History

2025-09-16 17:19:58 +08:00
export interface NavigationItem {
path: string;
label: string;
labelKey: string;
hasSubmenu?: boolean;
submenu?: SubMenuItem[];
icon?: string;
}
export interface SubMenuItem {
path: string;
label: string;
labelKey: string;
description?: string;
descriptionKey?: string;
icon?: string;
}
// 导航项配置
export const navigationConfig: Omit<NavigationItem, 'label'>[] = [
{
path: '/',
labelKey: 'nav.home'
},
{
path: '/products',
labelKey: 'nav.products',
hasSubmenu: true,
submenu: [
{
path: '/products/cloud-server',
labelKey: 'products.cloudServer',
label: '云服务器',
description: '弹性可扩展的计算服务'
},
{
path: '/products/storage',
labelKey: 'products.cloudStorage',
label: '云存储',
description: '安全可靠的数据存储'
},
{
path: '/products/database',
labelKey: 'products.cloudDatabase',
label: '云数据库',
description: '高性能托管数据库'
},
{
path: '/products/network',
labelKey: 'products.networkService',
label: '网络服务',
description: '全球网络加速服务'
}
]
},
{
path: '/news',
labelKey: 'nav.news'
},
{
path: '/support',
labelKey: 'nav.support'
},
{
path: '/about',
labelKey: 'nav.about'
}
];
// 语言选项配置
export interface LanguageOption {
code: string;
label: string;
flag: string;
shortCode: string;
}
export const languageOptions: LanguageOption[] = [
{ code: 'zh-CN', label: '简体中文', flag: '🇨🇳', shortCode: '简中' },
{ code: 'zh-TW', label: '繁體中文', flag: '🇹🇼', shortCode: '繁中' },
{ code: 'en', label: 'English', flag: '🇺🇸', shortCode: 'EN' }
];
// 导航主题配置
export interface NavigationTheme {
primary: string;
primaryHover: string;
secondary: string;
accent: string;
background: string;
border: string;
}
export const navigationThemes = {
default: {
primary: 'blue-600',
primaryHover: 'blue-700',
secondary: 'gray-600',
accent: 'blue-50',
background: 'white',
border: 'gray-200'
},
dark: {
primary: 'blue-400',
primaryHover: 'blue-300',
secondary: 'gray-300',
accent: 'blue-900',
background: 'gray-900',
border: 'gray-700'
}
};
// 获取本地化路径的工具函数
export const getLocalizedPath = (path: string, locale: string): string => {
if (locale === 'zh-CN') {
return path;
}
return `/${locale}${path}`;
};
// 检查路径是否激活的工具函数
export const isPathActive = (currentPath: string, targetPath: string): boolean => {
if (targetPath === '/') {
return currentPath === '/';
}
return currentPath.startsWith(targetPath);
};