'use client' import { Languages, Package, Settings } from 'lucide-react' import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs' import type { CatalogItemData } from './catalog-items-table' import { 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[] } export function CatalogDetailTabs({ catalogPage, items, baseItems, catalogNameMap, childPages, pageId, canEdit, furniDataIdList, furniDescriptionMap, furniRevisionMap, allPages, interactionTypes, }: 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 })()} ) }