import { FC, useState } from "react"; import { DataTable } from "@marzneshin/components"; interface MutationDialogProps { open: boolean; onOpenChange: (open: boolean) => void; entity: T | null; } interface DeleteConfirmationDialogProps { open: boolean; onOpenChange: (open: boolean) => void; entity: T | null; } interface SettingsDialogProps { open: boolean; onOpenChange: (open: boolean) => void; entity: T | null; } interface EntityTableProps { useQuery: () => { data: T[] }; MutationDialog: FC>; DeleteConfirmationDialog: FC>; SettingsDialog: FC>; columns: any; filteredColumn: string; } export function EntityTable({ useQuery, MutationDialog, DeleteConfirmationDialog, SettingsDialog, columns, filteredColumn, }: EntityTableProps) { const { data } = useQuery(); const [mutationDialogOpen, setMutationDialogOpen] = useState(false); const [deleteDialogOpen, setDeleteDialogOpen] = useState(false); const [settingsDialogOpen, setSettingsDialogOpen] = useState(false); const [selectedEntity, selectEntity] = useState(null); const onEdit = (entity: T) => { selectEntity(entity); setMutationDialogOpen(true); }; const onDelete = (entity: T) => { selectEntity(entity); setDeleteDialogOpen(true); }; const onCreate = () => { selectEntity(null); setMutationDialogOpen(true); }; const onOpen = (entity: T) => { selectEntity(entity); setSettingsDialogOpen(true); }; return (
); }