import { MODULES } from "../modules/index.ts"; import type { Project } from "../api/types.ts"; import type { NavItem } from "../modules/types.ts"; import { IconHistory, IconHome } from "../ui/index.ts"; // «Обзор» — главная страница ядра; разделы модулей — по группам export const OVERVIEW: NavItem = { to: "/", label: "Обзор", icon: , padded: true }; // «Лента» — страница ядра: события источников модулей (design wiki-history); при смене проекта строка запроса сохраняется export const FEED: NavItem = { to: "/feed", label: "Лента", icon: , padded: true, keepSearch: true }; export const GROUPS = MODULES.filter((m) => m.nav.length > 0).map((m) => ({ name: m.name, title: m.title, nav: m.nav })); export const NAV: NavItem[] = [OVERVIEW, FEED, ...GROUPS.flatMap((g) => g.nav)]; // пункты, видимые для проекта: безусловные — всегда, условные (`when`) — когда проект известен и условие верно export const visibleNav = (items: NavItem[], project: Project | null): NavItem[] => items.filter((n) => !n.when || (project !== null && n.when(project)));