import { FC } from 'react' import Link from 'next/link' import { useRouter } from 'next/router' import { observer } from 'mobx-react-lite' import { useStore } from 'hooks' import { Badge, Button, Dropdown, Menu, IconLoader, IconMoreVertical, Alert, IconEdit, IconTrash, } from 'ui' import ProductMenuItem from 'components/ui/ProductMenu/ProductMenuItem' import { STORAGE_ROW_STATUS } from 'components/to-be-cleaned/Storage/Storage.constants' import { useStorageStore } from 'localStores/storageExplorer/StorageExplorerStore' interface Props {} const StorageMenu: FC = () => { const router = useRouter() const { ref, bucketId } = router.query const page = router.pathname.split('/')[4] as | undefined | 'policies' | 'settings' | 'usage' | 'logs' const { ui } = useStore() const projectRef = ui.selectedProject?.ref const storageExplorerStore = useStorageStore() const { loaded, buckets, openCreateBucketModal, openDeleteBucketModal, openToggleBucketPublicModal, } = storageExplorerStore || {} return (
} style={{ justifyContent: 'start' }} onClick={openCreateBucketModal} > New bucket
{!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) const BucketRow = ({ bucket = {}, projectRef = '', isSelected = false, onSelectDeleteBucket = () => {}, onSelectToggleBucketPublic = () => {}, }: any) => { return (

{bucket.name}

{bucket.public && Public} } url={`/project/${projectRef}/storage/buckets/${bucket.id}`} isActive={isSelected} action={ bucket.status === STORAGE_ROW_STATUS.LOADING ? ( ) : bucket.status === STORAGE_ROW_STATUS.READY ? ( onSelectToggleBucketPublic(bucket)} > {bucket.public ? 'Make private' : 'Make public'} , , } key="delete-bucket" onClick={() => onSelectDeleteBucket(bucket)} > Delete bucket , ]} > ) : (
) } /> ) }