55 useIsAnalyticsBucketsEnabled ,
66 useIsVectorBucketsEnabled ,
77} from 'data/config/project-storage-config-query'
8+ import { useIsFeatureEnabled } from 'hooks/misc/useIsFeatureEnabled'
89import { Badge , Menu } from 'ui'
910import { BUCKET_TYPES } from './Storage.constants'
1011import { useStorageV2Page } from './Storage.utils'
@@ -13,38 +14,47 @@ export const StorageMenuV2 = () => {
1314 const { ref } = useParams ( )
1415 const page = useStorageV2Page ( )
1516
17+ const { storageAnalytics, storageVectors } = useIsFeatureEnabled ( [
18+ 'storage:analytics' ,
19+ 'storage:vectors' ,
20+ ] )
21+
1622 const isAnalyticsBucketsEnabled = useIsAnalyticsBucketsEnabled ( { projectRef : ref } )
1723 const isVectorBucketsEnabled = useIsVectorBucketsEnabled ( { projectRef : ref } )
1824
25+ const bucketTypes = Object . entries ( BUCKET_TYPES ) . filter ( ( [ key , config ] ) => {
26+ if ( key === 'analytics' ) return storageAnalytics
27+ if ( key === 'vectors' ) return storageVectors
28+ return IS_PLATFORM || ( ! IS_PLATFORM && ! config . platformOnly )
29+ } )
30+
1931 return (
2032 < Menu type = "pills" className = "my-6 flex flex-grow flex-col" >
2133 < div className = "space-y-6" >
2234 < div className = "mx-3" >
2335 < Menu . Group title = { < span className = "uppercase font-mono" > Manage</ span > } />
2436
25- { Object . entries ( BUCKET_TYPES )
26- . filter ( ( [ _ , config ] ) => IS_PLATFORM || ( ! IS_PLATFORM && ! config . platformOnly ) )
27- . map ( ( [ type , config ] ) => {
28- const isSelected = page === type
29- const isAlphaEnabled =
30- ( type === 'analytics' && isAnalyticsBucketsEnabled ) ||
31- ( type === 'vectors' && isVectorBucketsEnabled )
37+ { bucketTypes . map ( ( [ type , config ] ) => {
38+ const isSelected = page === type
39+ const isAlphaEnabled =
40+ ( type === 'analytics' && isAnalyticsBucketsEnabled ) ||
41+ ( type === 'vectors' && isVectorBucketsEnabled )
3242
33- return (
34- < Link key = { type } href = { `/project/${ ref } /storage/${ type } ` } >
35- < Menu . Item rounded active = { isSelected } >
36- < div className = "flex items-center justify-between" >
37- < p className = "truncate" > { config . displayName } </ p >
38- { isAlphaEnabled && (
39- < Badge variant = "default" size = "small" >
40- New
41- </ Badge >
42- ) }
43- </ div >
44- </ Menu . Item >
45- </ Link >
46- )
47- } ) }
43+ return (
44+ < Link key = { type } href = { `/project/${ ref } /storage/${ type } ` } >
45+ < Menu . Item rounded active = { isSelected } >
46+ < div className = "flex items-center justify-between" >
47+ < p className = "truncate" > { config . displayName } </ p >
48+ { isAlphaEnabled && (
49+ < Badge variant = "default" size = "small" >
50+ New
51+ </ Badge >
52+ ) }
53+ </ div >
54+ </ Menu . Item >
55+ </ Link >
56+ )
57+ } ) }
4858 </ div >
4959
5060 { IS_PLATFORM && (
0 commit comments