import { ChevronDown, ExternalLink } from 'lucide-react' import Link from 'next/link' import { useState } from 'react' import { useAccessTokenCreateMutation } from 'data/access-tokens/access-tokens-create-mutation' import { Button, DialogFooter, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, Form, Input, Modal, } from 'ui' import { Admonition } from 'ui-patterns' export interface NewAccessTokenButtonProps { onCreateToken: (token: any) => void } const NewAccessTokenButton = ({ onCreateToken }: NewAccessTokenButtonProps) => { const [isOpen, setIsOpen] = useState(false) const [tokenScope, setTokenScope] = useState<'V0' | undefined>(undefined) const validate = (values: any) => { const errors: any = {} if (!values.tokenName) errors.tokenName = 'Please enter a name for the token' return errors } const { mutate: createAccessToken, isLoading } = useAccessTokenCreateMutation({ onSuccess: (res) => { onCreateToken(res) setIsOpen(false) }, }) const onFormSubmit = async (values: any) => { createAccessToken({ name: values.tokenName, scope: tokenScope }) } return ( <>
setIsOpen(!isOpen)} header={
{tokenScope === 'V0' ? 'Generate token for experimental API' : 'Generate New Token'}
} >
{() => ( <> {tokenScope === 'V0' && (

These include deleting organizations and projects which cannot be undone. As such, be very careful when using this API.

} />
)}
)}
) } export default NewAccessTokenButton