import { PermissionAction } from '@supabase/shared-types/out/constants' import { noop } from 'lodash' import { Columns3, Edit2, MoreVertical, Trash, XCircle } from 'lucide-react' import Link from 'next/link' import type { Bucket } from 'data/storage/buckets-query' import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' import { Badge, Button, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, Tooltip, TooltipContent, TooltipTrigger, cn, } from 'ui' export interface BucketRowProps { bucket: Bucket projectRef?: string isSelected: boolean onSelectEmptyBucket: () => void onSelectDeleteBucket: () => void onSelectEditBucket: () => void } const BucketRow = ({ bucket, projectRef = '', isSelected = false, onSelectEmptyBucket = noop, onSelectDeleteBucket = noop, onSelectEditBucket = noop, }: BucketRowProps) => { const canUpdateBuckets = useCheckPermissions(PermissionAction.STORAGE_WRITE, '*') return (
{/* Even though we trim whitespaces from bucket names, there may be some existing buckets with trailing whitespaces. */}

{bucket.name}

{bucket.public && Public} {bucket.type === 'ANALYTICS' && (

Analytics bucket

)}
{canUpdateBuckets && isSelected ? (