NewBucketButton.tsx 927 B

12345678910111213141516171819202122232425262728293031323334
  1. import { PermissionAction } from '@supabase/shared-types/out/constants'
  2. import { Plus } from 'lucide-react'
  3. import { MouseEventHandler } from 'react'
  4. import { ButtonTooltip } from '@/components/ui/ButtonTooltip'
  5. import { useAsyncCheckPermissions } from '@/hooks/misc/useCheckPermissions'
  6. export const CreateBucketButton = ({
  7. onClick,
  8. }: {
  9. onClick: MouseEventHandler<HTMLButtonElement>
  10. }) => {
  11. const { can: canCreateBuckets } = useAsyncCheckPermissions(PermissionAction.STORAGE_WRITE, '*')
  12. return (
  13. <ButtonTooltip
  14. block
  15. size="tiny"
  16. type="primary"
  17. className="w-fit"
  18. icon={<Plus size={14} />}
  19. disabled={!canCreateBuckets}
  20. onClick={onClick}
  21. tooltip={{
  22. content: {
  23. side: 'bottom',
  24. text: !canCreateBuckets ? 'You need additional permissions to create buckets' : undefined,
  25. },
  26. }}
  27. >
  28. New bucket
  29. </ButtonTooltip>
  30. )
  31. }