Use same button to generate and delete API keys (#1210)
This commit is contained in:
parent
d2a981ca5d
commit
a7bc757514
|
@ -28,7 +28,6 @@ import { useServiceWorkerLogger } from '@/components/logger'
|
||||||
import { useMe } from '@/components/me'
|
import { useMe } from '@/components/me'
|
||||||
import { INVOICE_RETENTION_DAYS, ZAP_UNDO_DELAY_MS } from '@/lib/constants'
|
import { INVOICE_RETENTION_DAYS, ZAP_UNDO_DELAY_MS } from '@/lib/constants'
|
||||||
import { OverlayTrigger, Tooltip } from 'react-bootstrap'
|
import { OverlayTrigger, Tooltip } from 'react-bootstrap'
|
||||||
import DeleteIcon from '@/svgs/delete-bin-line.svg'
|
|
||||||
import { useField } from 'formik'
|
import { useField } from 'formik'
|
||||||
import styles from './settings.module.css'
|
import styles from './settings.module.css'
|
||||||
|
|
||||||
|
@ -859,22 +858,25 @@ I estimate that I will call the GraphQL API this many times (rough estimate is f
|
||||||
// link to DM with ek on SimpleX
|
// link to DM with ek on SimpleX
|
||||||
const simplexLink = 'https://simplex.chat/contact#/?v=1-2&smp=smp%3A%2F%2F6iIcWT_dF2zN_w5xzZEY7HI2Prbh3ldP07YTyDexPjE%3D%40smp10.simplex.im%2FxNnPk9DkTbQJ6NckWom9mi5vheo_VPLm%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAnFUiU0M8jS1JY34LxUoPr7mdJlFZwf3pFkjRrhprdQs%253D%26srv%3Drb2pbttocvnbrngnwziclp2f4ckjq65kebafws6g4hy22cdaiv5dwjqd.onion'
|
const simplexLink = 'https://simplex.chat/contact#/?v=1-2&smp=smp%3A%2F%2F6iIcWT_dF2zN_w5xzZEY7HI2Prbh3ldP07YTyDexPjE%3D%40smp10.simplex.im%2FxNnPk9DkTbQJ6NckWom9mi5vheo_VPLm%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAnFUiU0M8jS1JY34LxUoPr7mdJlFZwf3pFkjRrhprdQs%253D%26srv%3Drb2pbttocvnbrngnwziclp2f4ckjq65kebafws6g4hy22cdaiv5dwjqd.onion'
|
||||||
|
|
||||||
const disabled = !enabled || apiKey
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className='form-label mt-3'>api key</div>
|
<div className='form-label mt-3'>api key</div>
|
||||||
<div className='mt-2 d-flex align-items-center'>
|
<div className='mt-2 d-flex align-items-center'>
|
||||||
<OverlayTrigger
|
<OverlayTrigger
|
||||||
placement='bottom'
|
placement='bottom'
|
||||||
overlay={disabled ? <Tooltip>{apiKey ? 'you can have only one API key at a time' : 'request access to API keys in ~meta'}</Tooltip> : <></>}
|
overlay={!enabled ? <Tooltip>{apiKey ? 'you can have only one API key at a time' : 'request access to API keys in ~meta'}</Tooltip> : <></>}
|
||||||
trigger={['hover', 'focus']}
|
trigger={['hover', 'focus']}
|
||||||
>
|
>
|
||||||
<div>
|
<div>
|
||||||
<Button
|
<Button
|
||||||
disabled={disabled}
|
disabled={!enabled}
|
||||||
variant='secondary'
|
variant={apiKey ? 'danger' : 'secondary'}
|
||||||
onClick={async () => {
|
onClick={async () => {
|
||||||
|
if (apiKey) {
|
||||||
|
showModal((onClose) => <ApiKeyDeleteObstacle onClose={onClose} />)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const { data } = await generateApiKey({ variables: { id: me.id } })
|
const { data } = await generateApiKey({ variables: { id: me.id } })
|
||||||
const { generateApiKey: apiKey } = data
|
const { generateApiKey: apiKey } = data
|
||||||
|
@ -884,17 +886,10 @@ I estimate that I will call the GraphQL API this many times (rough estimate is f
|
||||||
toaster.danger('error generating api key')
|
toaster.danger('error generating api key')
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>Generate API key
|
>{apiKey ? 'Delete' : 'Generate'} API key
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</OverlayTrigger>
|
</OverlayTrigger>
|
||||||
{apiKey &&
|
|
||||||
<DeleteIcon
|
|
||||||
style={{ cursor: 'pointer' }} className='fill-danger mx-1' width={24} height={24}
|
|
||||||
onClick={async () => {
|
|
||||||
showModal((onClose) => <ApiKeyDeleteObstacle onClose={onClose} />)
|
|
||||||
}}
|
|
||||||
/>}
|
|
||||||
<Info>
|
<Info>
|
||||||
<ul className='fw-bold'>
|
<ul className='fw-bold'>
|
||||||
<li>use API keys with our <Link target='_blank' href='/api/graphql'>GraphQL API</Link> for authentication</li>
|
<li>use API keys with our <Link target='_blank' href='/api/graphql'>GraphQL API</Link> for authentication</li>
|
||||||
|
|
Loading…
Reference in New Issue