import { FC } from 'react' import Link from 'next/link' import { useRouter } from 'next/router' import { observer } from 'mobx-react-lite' import * as Tooltip from '@radix-ui/react-tooltip' import { Button, Menu, IconLoader, Alert, IconEdit } from 'ui' import { PermissionAction } from '@supabase/shared-types/out/constants' import { checkPermissions, useParams } from 'hooks' import BucketRow from './BucketRow' import { useStorageStore } from 'localStores/storageExplorer/StorageExplorerStore' interface Props {} const StorageMenu: FC = () => { const router = useRouter() const { ref, bucketId } = useParams() const canCreateBuckets = checkPermissions(PermissionAction.STORAGE_ADMIN_WRITE, '*') const page = router.pathname.split('/')[4] as | undefined | 'policies' | 'settings' | 'usage' | 'logs' const storageExplorerStore = useStorageStore() const { loaded, buckets, openCreateBucketModal, openDeleteBucketModal, openToggleBucketPublicModal, } = storageExplorerStore || {} return (
} disabled={!canCreateBuckets} style={{ justifyContent: 'start' }} onClick={openCreateBucketModal} > New bucket {!canCreateBuckets && (
You need additional permissions to create buckets
)}
{!loaded ? (
Loading buckets
) : ( <> {buckets.length === 0 && (
Buckets that you create will appear here
)} {buckets.map((bucket: any, idx: number) => { const isSelected = bucketId === bucket.id return ( ) })} )}

Policies

) } export default observer(StorageMenu)