import { Layers } from 'lucide-react'; import { Authorized, useAuthorizations } from '@/react/hooks/useUser'; import { refreshableSettings } from '@@/datatables/types'; import { Datatable, TableSettingsMenu } from '@@/datatables'; import { useTableStateWithStorage } from '@@/datatables/useTableState'; import { DeleteButton } from '@@/buttons/DeleteButton'; import { useRepeater } from '@@/datatables/useRepeater'; import { AddButton } from '@@/buttons'; import { systemResourcesSettings } from '../../datatables/SystemResourcesSettings'; import { CreateFromManifestButton } from '../../components/CreateFromManifestButton'; import { DefaultDatatableSettings, TableSettings, } from '../../datatables/DefaultDatatableSettings'; import { SystemResourceDescription } from '../../datatables/SystemResourceDescription'; import { isDefaultNamespace } from '../isDefaultNamespace'; import { NamespaceViewModel } from './types'; import { useColumns } from './columns/useColumns'; export function NamespacesDatatable({ dataset, onRemove, onRefresh, }: { dataset: Array; onRemove(items: Array): void; onRefresh(): void; }) { const tableState = useTableStateWithStorage( 'kube-namespaces', 'Name', (set) => ({ ...systemResourcesSettings(set), ...refreshableSettings(set), }) ); const hasWriteAuthQuery = useAuthorizations( 'K8sResourcePoolDetailsW', undefined, true ); const columns = useColumns(); useRepeater(tableState.autoRefreshRate, onRefresh); const filteredDataset = tableState.showSystemResources ? dataset : dataset.filter((item) => !item.Namespace.IsSystem); return ( item.Namespace.Id} isRowSelectable={({ original: item }) => hasWriteAuthQuery.authorized && !item.Namespace.IsSystem && !isDefaultNamespace(item.Namespace.Name) } renderTableActions={(selectedItems) => ( onRemove(selectedItems)} disabled={selectedItems.length === 0} /> Add with form )} renderTableSettings={() => ( )} description={ } /> ); }