import React, { useState } from "react"; import { useTableOptions } from "@/contexts/TableOptionsContext"; import { Button } from "@/components/ui/button"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { Settings, Filter, Layers } from "lucide-react"; import { ColumnVisibilityPanel } from "./ColumnVisibilityPanel"; import { FilterPanel } from "./FilterPanel"; import { GroupingPanel } from "./GroupingPanel"; export const TableOptionsToolbar: React.FC = () => { const { registeredTables, selectedTableId, setSelectedTableId } = useTableOptions(); const [columnPanelOpen, setColumnPanelOpen] = useState(false); const [filterPanelOpen, setFilterPanelOpen] = useState(false); const [groupPanelOpen, setGroupPanelOpen] = useState(false); const tableList = Array.from(registeredTables.values()); const selectedTable = selectedTableId ? registeredTables.get(selectedTableId) : null; // 테이블이 없으면 표시하지 않음 if (tableList.length === 0) { return null; } return (
{/* 테이블 선택 (2개 이상일 때만 표시) */} {tableList.length > 1 && ( )} {/* 테이블이 1개일 때는 이름만 표시 */} {tableList.length === 1 && (
{tableList[0].label}
)} {/* 컬럼 수 표시 */}
전체 {selectedTable?.columns.length || 0}개
{/* 옵션 버튼들 */} {/* 패널들 */} {selectedTableId && ( <> )}
); };