import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui/dialog' import { Button } from '@/components/ui/button' import { DataSource } from '@/types/json-ui' import { DataSourceBadge } from '@/components/atoms/DataSourceBadge' import { DataSourceIdField } from '@/components/molecules/data-source-editor/DataSourceIdField' import { KvSourceFields } from '@/components/molecules/data-source-editor/KvSourceFields' import { StaticSourceFields } from '@/components/molecules/data-source-editor/StaticSourceFields' import dataSourceEditorCopy from '@/data/data-source-editor-dialog.json' import { useDataSourceEditor } from '@/hooks/data/use-data-source-editor' interface DataSourceEditorDialogProps { open: boolean dataSource: DataSource | null onOpenChange: (open: boolean) => void onSave: (dataSource: DataSource) => void } export function DataSourceEditorDialog({ open, dataSource, onOpenChange, onSave, }: DataSourceEditorDialogProps) { const { editingSource, updateField, } = useDataSourceEditor(dataSource) const handleSave = () => { if (!editingSource) return onSave(editingSource) onOpenChange(false) } if (!editingSource) return null return ( {dataSourceEditorCopy.title} {dataSourceEditorCopy.description}
updateField('id', value)} /> {editingSource.type === 'kv' && ( )} {editingSource.type === 'static' && ( )}
) }