NewScopedTokenButton.tsx33 lines · main
| 1 | import { useState } from 'react' |
| 2 | import { Button } from 'ui' |
| 3 | |
| 4 | import { NewScopedTokenSheet } from './NewScopedTokenSheet' |
| 5 | import { type NewScopedAccessToken } from '@/data/scoped-access-tokens/scoped-access-token-create-mutation' |
| 6 | |
| 7 | export interface NewScopedTokenButtonProps { |
| 8 | onCreateToken: (token: NewScopedAccessToken) => void |
| 9 | } |
| 10 | |
| 11 | export const NewScopedTokenButton = ({ onCreateToken }: NewScopedTokenButtonProps) => { |
| 12 | const [visible, setVisible] = useState(false) |
| 13 | |
| 14 | return ( |
| 15 | <> |
| 16 | <Button |
| 17 | type="primary" |
| 18 | onClick={() => { |
| 19 | setVisible(true) |
| 20 | }} |
| 21 | > |
| 22 | Generate new token |
| 23 | </Button> |
| 24 | |
| 25 | <NewScopedTokenSheet |
| 26 | visible={visible} |
| 27 | onOpenChange={setVisible} |
| 28 | tokenScope={undefined} |
| 29 | onCreateToken={onCreateToken} |
| 30 | /> |
| 31 | </> |
| 32 | ) |
| 33 | } |