| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- 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 (
- <AlertDialog open={createKeysDialogOpen} onOpenChange={setCreateKeysDialogOpen}>
- <Button onClick={() => setCreateKeysDialogOpen(true)}>Create new API keys</Button>
- <AlertDialogContent>
- <AlertDialogHeader>
- <AlertDialogTitle>Create new API keys</AlertDialogTitle>
- <AlertDialogDescription>
- This will create a default publishable key and a default secret key both named{' '}
- <code className="break-keep! text-code-inline">default</code>. These keys are required
- to connect your application to your Briven project.
- </AlertDialogDescription>
- </AlertDialogHeader>
- <AlertDialogFooter>
- <AlertDialogCancel>Cancel</AlertDialogCancel>
- <AlertDialogAction onClick={handleCreateNewApiKeys} disabled={isCreatingKeys}>
- {isCreatingKeys ? 'Creating...' : 'Create keys'}
- </AlertDialogAction>
- </AlertDialogFooter>
- </AlertDialogContent>
- </AlertDialog>
- )
- }
|