"use client"; import { useState } from "react"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"; import { Button } from "@/components/ui/button"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "@/components/ui/dropdown-menu"; import { MoreVertical, Trash2 } from "lucide-react"; import { DeleteSectionDialog } from "./DeleteSectionDialog"; interface LayoutSection { id: number; name: string; type: string; sheetName: string; startingRow?: number | null; endingRow?: number | null; tableName: string; fields: LayoutSectionField[]; } interface LayoutSectionField { id: number; name: string; dataType: string; dataTypeFormat: string | null; cellPosition: string; importTableColumnName: string; importColumnOrderNumber: number; } interface LayoutSectionCardProps { section: LayoutSection; onSectionDeleted?: () => void; } export function LayoutSectionCard({ section, onSectionDeleted }: LayoutSectionCardProps) { const [deleteDialogOpen, setDeleteDialogOpen] = useState(false); const getTypeColor = (type: string) => { switch (type.toLowerCase()) { case "properties": return "bg-blue-100 text-blue-800"; case "grid": return "bg-green-100 text-green-800"; default: return "bg-gray-100 text-gray-800"; } }; const handleCardClick = (e: React.MouseEvent) => { // Prevent navigation when clicking on the dropdown menu if ((e.target as HTMLElement).closest('.section-actions')) { return; } window.location.href = `/layout-configurations/sections/${section.id}/fields`; }; return ( <>
{section.name} Sheet: {section.sheetName} | Table: {section.tableName}
{section.type} { e.stopPropagation(); setDeleteDialogOpen(true); }} > Delete
{section.startingRow && ( Rows: {section.startingRow} - {section.endingRow || "end"} )} Fields: {section.fields.length}
{section.fields.length > 0 && (

Fields

Name Type Position Column Order {section.fields.map((field) => ( {field.name} {field.dataType} {field.cellPosition} {field.importTableColumnName} {field.importColumnOrderNumber} ))}
)}
); }