/* Copyright (C) 2025 QuantumNous This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . For commercial licensing, please contact support@quantumnous.com */ import { useMemo } from 'react'; export const useNavigation = (t, docsNav, headerNavModules) => { const mainNavLinks = useMemo(() => { // 默认配置,如果没有传入配置则显示所有模块 const defaultModules = { pricing: true, console: true, benchmark: true, docs: true, }; // 使用传入的配置或默认配置 const modules = headerNavModules || defaultModules; const allLinks = [ { text: t('模型'), itemKey: 'pricing', to: '/pricing', }, { text: t('控制台'), itemKey: 'console', to: '/console', }, { text: t('评测'), itemKey: 'benchmark', to: '/benchmarks', }, ...(docsNav?.href ? [ { text: t('文档'), itemKey: 'docs', isExternal: true, externalLink: docsNav.href, openInNewTab: docsNav.openInNewTab, }, ] : []), ]; // 根据配置过滤导航链接 return allLinks.filter((link) => { if (link.itemKey === 'docs') { return docsNav?.href && modules.docs; } const moduleConfig = modules[link.itemKey]; if (typeof moduleConfig === 'object' && moduleConfig !== null) { return moduleConfig.enabled; } return !!moduleConfig; }); }, [t, docsNav, headerNavModules]); return { mainNavLinks, }; };