NewScopedTokenButton.tsx 820 B

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