diff --git a/app/(dashboard)/table-catalog/page.tsx b/app/(dashboard)/table-catalog/page.tsx index 5fa609e7..e307e156 100644 --- a/app/(dashboard)/table-catalog/page.tsx +++ b/app/(dashboard)/table-catalog/page.tsx @@ -48,6 +48,7 @@ import { ViewDialog, type ViewDialogMode } from "@/components/table-catalog/view import { ViewDetailDialog } from "@/components/table-catalog/view-detail-dialog" import { useDialog } from "@/lib/feedback/dialog" import { useMessage } from "@/lib/feedback/message" +import { confirmTableBucketDisable } from "@/lib/table-catalog-disable" import { copyToClipboard } from "@/lib/clipboard" import { cn } from "@/lib/utils" import { displayNamespace, resolveTableCatalogPrefix, TABLE_CATALOG_PREFIX } from "@/lib/table-catalog-paths" @@ -101,6 +102,7 @@ export default function TableCatalogPage() { getCatalogConfig, getTableBucket, enableTableBucket, + disableTableBucket, listNamespaces, dropNamespace, listTables, @@ -472,6 +474,19 @@ export default function TableCatalogPage() { }) } + const handleDisableBucket = () => { + confirmTableBucketDisable({ + bucket: selectedBucket, + canManage: canEnableBucket, + info: selectedInfo, + disable: disableTableBucket, + onDisabled: (bucket, info) => setBucketInfo((current) => ({ ...current, [bucket]: info })), + dialog, + message, + t, + }) + } + const handleDeleteNamespace = React.useCallback( (row: NamespaceSummary) => { if (!canDeleteNamespace || !selectedBucket) return @@ -925,6 +940,18 @@ export default function TableCatalogPage() { ) : selectedInfo ? ( {t("Not enabled")} ) : null} + {selectedInfo?.enabled && selectedInfo.disableSupported ? ( + + ) : null} {selectedInfo?.enabled && activeTab === "tables" ? (