"use client"; import Link from "next/link"; import { ArrowLeft, ChevronDown } from "lucide-react"; import { Button } from "@/components/ui/button"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { Separator } from "@/components/ui/separator"; import { ADMIN_SETTINGS_NAV_GROUPS } from "../_lib/settings-navigation"; import type { AdminSettingsNavGroup, AdminSettingsNavItem } from "../_lib/types"; import { cn } from "@/lib/utils"; import { SettingStatusBadge } from "./setting-status-badge"; function getActiveGroup(activeTab: string) { return ADMIN_SETTINGS_NAV_GROUPS.find((group) => group.items.some((item) => item.value === activeTab) ); } function getActiveItem(activeTab: string) { return ADMIN_SETTINGS_NAV_GROUPS.flatMap((group) => group.items).find( (item) => item.value === activeTab ); } function SettingsGroupDropdown({ activeTab, group, onTabChange, }: { activeTab: string; group: AdminSettingsNavGroup; onTabChange: (value: string) => void; }) { const hasActiveTab = group.items.some((item) => item.value === activeTab); return (
{group.title}
{group.description}
{group.items.map((item) => { const Icon = item.icon; const itemContent = ( <>
{item.label}
{item.description}
{item.value === activeTab ? ( 当前 ) : null} ); if (item.href) { return ( {itemContent} ); } return ( onTabChange(item.value)} > {itemContent} ); })}
); } function SettingsQuickAction({ activeTab, item, onTabChange, }: { activeTab: string; item: AdminSettingsNavItem; onTabChange: (value: string) => void; }) { const Icon = item.icon; const className = item.value === activeTab ? "border-foreground/10 bg-foreground text-background shadow-sm hover:bg-foreground/90 dark:border-white/20 dark:bg-white dark:text-black dark:hover:bg-white/90" : "border-transparent bg-transparent text-muted-foreground hover:border-border/80 hover:bg-background hover:text-foreground"; if (item.href) { return ( ); } return ( ); } export function AdminSettingsNavigation({ activeTab, onTabChange, }: { activeTab: string; onTabChange: (value: string) => void; }) { const activeGroup = getActiveGroup(activeTab); const activeItem = getActiveItem(activeTab); const ActiveIcon = activeItem?.icon; return (
Admin Console {activeGroup ? ( <> {activeGroup.title} ) : null}

系统设置中心

{activeItem && ActiveIcon ? (
{activeItem.label} 当前
) : null}
{activeItem ? (

{activeItem.description}

) : null}
{(activeGroup?.items ?? []).map((item) => ( ))}
{ADMIN_SETTINGS_NAV_GROUPS.map((group) => ( ))}
{(activeGroup?.items ?? []).map((item) => ( ))}
{activeItem ? (

{activeItem.description}

) : null}
); }