import { useParams } from 'common' import { useState } from 'react' import { toast } from 'sonner' import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, Button, } from 'ui' import { useAPIKeyCreateMutation } from '@/data/api-keys/api-key-create-mutation' export const CreateNewAPIKeysButton = () => { const { ref: projectRef } = useParams() const [isCreatingKeys, setIsCreatingKeys] = useState(false) const [createKeysDialogOpen, setCreateKeysDialogOpen] = useState(false) const { mutateAsync: createAPIKey } = useAPIKeyCreateMutation() const handleCreateNewApiKeys = async () => { if (!projectRef) return setIsCreatingKeys(true) try { // Create publishable key await createAPIKey({ projectRef, type: 'publishable', name: 'default' }) // Create secret key await createAPIKey({ projectRef, type: 'secret', name: 'default' }) setCreateKeysDialogOpen(false) toast.success('Successfully created a new set of API keys!') } catch (error) { console.error('Failed to create API keys:', error) } finally { setIsCreatingKeys(false) } } return ( Create new API keys This will create a default publishable key and a default secret key both named{' '} default. These keys are required to connect your application to your Supabase project. Cancel {isCreatingKeys ? 'Creating...' : 'Create keys'} ) }