import { useMemo } from 'react' import type { ColumnOption } from '@/lib/table/types' import { useTable } from '@/hooks/queries/tables' import { useWorkflowRegistry } from '@/stores/workflows/registry/store' interface UseTableColumnsOptions { tableId: string | null | undefined includeBuiltIn?: boolean } /** Fetches table schema columns as dropdown options. */ export function useTableColumns({ tableId, includeBuiltIn = false }: UseTableColumnsOptions) { const workspaceId = useWorkflowRegistry((state) => state.hydration.workspaceId) const { data: tableData } = useTable(workspaceId ?? undefined, tableId ?? undefined) const schemaColumns = useMemo( () => (tableData?.schema?.columns || []).map((col) => ({ value: col.name, label: col.name, })), [tableData] ) return useMemo(() => { if (includeBuiltIn) { const builtInCols = [ { value: 'createdAt', label: 'createdAt' }, { value: 'updatedAt', label: 'updatedAt' }, ] return [...schemaColumns, ...builtInCols] } return schemaColumns }, [includeBuiltIn, schemaColumns]) }