import {Fragment} from 'react'; import {FormTextField} from '../../../../../ui/forms/input-field/text-field/text-field'; import {Trans} from '../../../../../i18n/trans'; import {CredentialFormProps} from '../uploading-settings'; import {Button} from '../../../../../ui/buttons/button'; import {Dialog} from '../../../../../ui/overlays/dialog/dialog'; import {DialogHeader} from '../../../../../ui/overlays/dialog/dialog-header'; import {DialogBody} from '../../../../../ui/overlays/dialog/dialog-body'; import {useForm, useFormContext} from 'react-hook-form'; import {Form} from '../../../../../ui/forms/form'; import {DialogTrigger} from '../../../../../ui/overlays/dialog/dialog-trigger'; import {AdminSettings} from '../../../admin-settings'; import {DialogFooter} from '../../../../../ui/overlays/dialog/dialog-footer'; import {useDialogContext} from '../../../../../ui/overlays/dialog/dialog-context'; import {useGenerateDropboxRefreshToken} from './use-generate-dropbox-refresh-token'; export function DropboxForm({isInvalid}: CredentialFormProps) { const {watch, setValue} = useFormContext(); const appKey = watch('server.storage_dropbox_app_key'); const appSecret = watch('server.storage_dropbox_app_secret'); return ( } required /> } required /> } required /> { if (refreshToken) { setValue('server.storage_dropbox_refresh_token', refreshToken); } }} > ); } interface DropboxRefreshTokenDialogProps { appKey: string; appSecret: string; } function DropboxRefreshTokenDialog({ appKey, appSecret, }: DropboxRefreshTokenDialogProps) { const form = useForm<{accessCode: string}>(); const {formId, close} = useDialogContext(); const generateRefreshToken = useGenerateDropboxRefreshToken(); return (
{ generateRefreshToken.mutate( { app_key: appKey, app_secret: appSecret, access_code: data.accessCode, }, { onSuccess: response => { close(response.refreshToken); }, }, ); }} >
} required />
); }