Files
gitlab-instance-0a899031_cn…/config/debug-features.ts
2026-06-08 06:05:31 -05:00

138 lines
3.5 KiB
TypeScript

/**
* 开发调试:可切换的隐藏功能注册表
* 默认值与 nav.config / home.config 中的 hidden 开关保持一致
*/
import { HOME_MEDIA_PRESS_ENABLED, HOME_RIGHT_FEATURE_CARDS_ENABLED } from "./home.config";
import type { NavLink } from "./nav.config";
export interface DebugFeature {
id: string;
label: string;
description: string;
category: string;
defaultVisible: boolean;
navLabelKey?: NavLink["labelKey"];
}
export const DEBUG_FEATURES: DebugFeature[] = [
{
id: "nav.cities",
label: "城市",
description: "顶部导航 🏙️ → /",
category: "顶部导航",
defaultVisible: false,
navLabelKey: "cities",
},
{
id: "nav.guide",
label: "游民指南",
description: "顶部导航 🧭 → /digital",
category: "顶部导航",
defaultVisible: false,
navLabelKey: "guide",
},
{
id: "nav.dashboard",
label: "下一站",
description: "顶部导航 📍 → /dashboard",
category: "顶部导航",
defaultVisible: false,
navLabelKey: "dashboard",
},
{
id: "nav.travel",
label: "聚会",
description: "顶部导航 ✈️ → /meetups",
category: "顶部导航",
defaultVisible: false,
navLabelKey: "travel",
},
{
id: "nav.community",
label: "社区",
description: "顶部导航 💬 → /dating",
category: "顶部导航",
defaultVisible: false,
navLabelKey: "community",
},
{
id: "nav.tools",
label: "工具箱",
description: "顶部导航 📊 → /tools",
category: "顶部导航",
defaultVisible: false,
navLabelKey: "tools",
},
{
id: "nav.ai",
label: "AI",
description: "顶部导航 🤖 → /ai",
category: "顶部导航",
defaultVisible: false,
navLabelKey: "ai",
},
{
id: "nav.gigs",
label: "赏金",
description: "顶部导航 💰 → /gigs",
category: "顶部导航",
defaultVisible: false,
navLabelKey: "gigs",
},
{
id: "nav.pricing",
label: "会员",
description: "顶部导航 👑 → /pricing",
category: "顶部导航",
defaultVisible: false,
navLabelKey: "pricing",
},
{
id: "nav.explore",
label: "探索",
description: "顶部导航 🎒 → /#community",
category: "顶部导航",
defaultVisible: false,
navLabelKey: "explore",
},
{
id: "nav.menu",
label: "更多",
description: "顶部导航网格按钮 · 点击头像亦可打开",
category: "顶部导航",
defaultVisible: false,
},
{
id: "home.rightFeatureCards",
label: "电子书 & 访谈视频",
description: "首页右侧网格顶部的两张内容卡片",
category: "首页",
defaultVisible: HOME_RIGHT_FEATURE_CARDS_ENABLED,
},
{
id: "home.mediaPress",
label: "媒体报道",
description: "首页 Hero 区底部的媒体名称列表",
category: "首页",
defaultVisible: HOME_MEDIA_PRESS_ENABLED,
},
];
export function getDebugFeatureById(id: string): DebugFeature | undefined {
return DEBUG_FEATURES.find((feature) => feature.id === id);
}
export function getDebugFeatureDefaultVisible(id: string): boolean {
return getDebugFeatureById(id)?.defaultVisible ?? false;
}
export function getNavLabelDebugFeatureId(
labelKey: NavLink["labelKey"]
): string | undefined {
return DEBUG_FEATURES.find((feature) => feature.navLabelKey === labelKey)?.id;
}
export function getDebugFeatureCategories(): string[] {
return [...new Set(DEBUG_FEATURES.map((feature) => feature.category))];
}