"use client"; import { Languages, Package, Settings } from "lucide-react"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { type CatalogItemData, CatalogItemsTable } from "./catalog-items-table"; import { CatalogPageForm } from "./catalog-page-form"; import { CatalogTranslateTab } from "./catalog-translate-tab"; interface CatalogPageData { id: number; caption: string; parentId: number; pageLayout: string; enabled: string; visible: string; minRank: number; clubOnly: string; orderNum: number; iconImage: number; iconColor: number; pageHeadline: string; pageTeaser: string; pageSpecial: string | null; pageText1: string | null; pageText2: string | null; pageTextDetails: string | null; pageTextTeaser: string | null; } interface BaseItemData { id: number; publicName: string; itemName: string; spriteId: number; type: string; } interface CatalogDetailTabsProps { catalogPage: CatalogPageData; items: CatalogItemData[]; baseItems: BaseItemData[]; catalogNameMap: Record; childPages: { id: number; caption: string; enabled: string }[]; pageId: number; canEdit: boolean; furniDataIdList: number[]; furniDescriptionMap: Record; furniRevisionMap: Record; allPages: { id: number; caption: string }[]; interactionTypes: string[]; gamedataHotel: string; } export function CatalogDetailTabs({ catalogPage, items, baseItems, catalogNameMap, childPages, pageId, canEdit, furniDataIdList, furniDescriptionMap, furniRevisionMap, allPages, interactionTypes, gamedataHotel, }: CatalogDetailTabsProps) { return ( Settings Items ({items.length}) Translate ({baseItems.length}){(() => { const furniSet = new Set(furniDataIdList); const missing = baseItems.filter((b) => !furniSet.has(b.id)).length; return missing > 0 ? ( {missing} ) : null; })()} ); }