// 左导航条目数据 + 激活判定（纯逻辑，供桌面静态侧栏 / 移动抽屉共用，UX §5.1/§3.1）。
// 组件只负责渲染；条目与高亮规则在此集中，避免侧栏与抽屉漂移。

export type ActiveNav =
  | "write"
  | "outline"
  | "foreshadow"
  | "review"
  | "style"
  | "codex"
  | "rules"
  | "skills"
  | "toolbox"
  | "chains";

export interface NavItem {
  href: string;
  label: string;
  // 项目级入口的激活键（与 activeNav 比对高亮）；全局项无 key。
  key?: ActiveNav;
}

export const GLOBAL_NAV_ITEMS: readonly NavItem[] = [
  { href: "/", label: "作品库" },
  { href: "/templates", label: "模板库" },
  { href: "/settings/providers", label: "设置" },
];

// 项目内页展开的项目级入口（UX §3.1）。
export function projectNavItems(projectId: string): NavItem[] {
  return [
    { href: `/projects/${projectId}/write`, label: "写作", key: "write" },
    { href: `/projects/${projectId}/outline`, label: "大纲", key: "outline" },
    {
      href: `/projects/${projectId}/foreshadow`,
      label: "伏笔",
      key: "foreshadow",
    },
    { href: `/projects/${projectId}/review`, label: "审稿", key: "review" },
    { href: `/projects/${projectId}/chains`, label: "多章链", key: "chains" },
    { href: `/projects/${projectId}/style`, label: "文风", key: "style" },
    { href: `/projects/${projectId}/codex`, label: "设定库", key: "codex" },
    { href: `/projects/${projectId}/toolbox`, label: "工具箱", key: "toolbox" },
    { href: `/projects/${projectId}/rules`, label: "规则", key: "rules" },
    { href: `/projects/${projectId}/skills`, label: "技能库", key: "skills" },
  ];
}

export interface NavActiveContext {
  pathname: string;
  activeNav?: ActiveNav;
}

// 全局项按精确路径匹配；项目项按 activeNav 键匹配（或路径相等兜底）。
export function isNavItemActive(item: NavItem, ctx: NavActiveContext): boolean {
  if (item.key !== undefined) {
    return item.key === ctx.activeNav || ctx.pathname === item.href;
  }
  return ctx.pathname === item.href;
}
