From 8b5a087eb7df9267df3ae591e582a2b0ec01968c Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Fri, 14 Nov 2025 15:25:59 +0800 Subject: [PATCH] Joshen/depr 262 bucketid route needs to handle if a bucket doesnt exist (#40430) * Handle landing on a bucket id that doesnt exist in project * Standardize re routing behaviour for files bucket * refactor --------- Co-authored-by: Alaister Young --- .../AnalyticsBucketDetails/index.tsx | 10 ++--- .../useSelectedAnalyticsBucket.ts | 18 +++++++++ .../Storage/FilesBuckets/useSelectedBucket.ts | 15 +++++++ .../StorageExplorer/useSelectedBucket.ts | 40 ------------------- .../VectorBuckets/VectorBucketDetails.tsx | 8 +++- .../VectorBuckets/useSelectedVectorBuckets.ts | 15 +++++++ .../storage/analytics/buckets/[bucketId].tsx | 17 +++++++- .../storage/files/buckets/[bucketId].tsx | 38 ++++++++++-------- .../storage/vectors/buckets/[bucketId].tsx | 18 ++++++++- 9 files changed, 113 insertions(+), 66 deletions(-) create mode 100644 apps/studio/components/interfaces/Storage/AnalyticsBuckets/useSelectedAnalyticsBucket.ts create mode 100644 apps/studio/components/interfaces/Storage/FilesBuckets/useSelectedBucket.ts delete mode 100644 apps/studio/components/interfaces/Storage/StorageExplorer/useSelectedBucket.ts create mode 100644 apps/studio/components/interfaces/Storage/VectorBuckets/useSelectedVectorBuckets.ts diff --git a/apps/studio/components/interfaces/Storage/AnalyticsBuckets/AnalyticsBucketDetails/index.tsx b/apps/studio/components/interfaces/Storage/AnalyticsBuckets/AnalyticsBucketDetails/index.tsx index 8c1b10def65..948b5cf6341 100644 --- a/apps/studio/components/interfaces/Storage/AnalyticsBuckets/AnalyticsBucketDetails/index.tsx +++ b/apps/studio/components/interfaces/Storage/AnalyticsBuckets/AnalyticsBucketDetails/index.tsx @@ -11,7 +11,6 @@ import { convertKVStringArrayToJson, formatWrapperTables, } from 'components/interfaces/Integrations/Wrappers/Wrappers.utils' -import { useSelectedBucket } from 'components/interfaces/Storage/StorageExplorer/useSelectedBucket' import { ScaffoldContainer, ScaffoldSection, @@ -25,7 +24,6 @@ import { } from 'data/database-extensions/database-extensions-query' import { useReplicationPipelineStatusQuery } from 'data/etl/pipeline-status-query' import { useStartPipelineMutation } from 'data/etl/start-pipeline-mutation' -import { AnalyticsBucket } from 'data/storage/analytics-buckets-query' import { useIcebergNamespacesQuery } from 'data/storage/iceberg-namespaces-query' import { useIcebergWrapperCreateMutation } from 'data/storage/iceberg-wrapper-create-mutation' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' @@ -34,6 +32,7 @@ import { Button, Card, CardContent } from 'ui' import { Admonition } from 'ui-patterns/admonition' import { GenericTableLoader } from 'ui-patterns/ShimmeringLoader' import { DeleteAnalyticsBucketModal } from '../DeleteAnalyticsBucketModal' +import { useSelectedAnalyticsBucket } from '../useSelectedAnalyticsBucket' import { BucketHeader } from './BucketHeader' import { ConnectTablesDialog } from './ConnectTablesDialog' import { NamespaceWithTables } from './NamespaceWithTables' @@ -48,12 +47,11 @@ export const AnalyticBucketDetails = () => { const { data: project } = useSelectedProjectQuery() const { state: extensionState } = useIcebergWrapperExtension() const { - bucket: _bucket, + data: bucket, error: bucketError, isSuccess: isSuccessBucket, isError: isErrorBucket, - } = useSelectedBucket() - const bucket = _bucket as undefined | AnalyticsBucket + } = useSelectedAnalyticsBucket() const [modal, setModal] = useState<'delete' | null>(null) // [Joshen] Namespaces are now created asynchronously when the pipeline is started, so long poll after @@ -332,7 +330,7 @@ export const AnalyticBucketDetails = () => {