import React, { useEffect, useCallback, FormEventHandler } from 'react'; import { Dialog, Text, Box, Button, config, Input } from 'folds'; import { AuthType } from 'matrix-js-sdk'; import { StageComponentProps } from './types'; function RegistrationTokenErrorDialog({ title, message, defaultToken, onRetry, onCancel, }: { title: string; message: string; defaultToken?: string; onRetry: (token: string) => void; onCancel: () => void; }) { const handleFormSubmit: FormEventHandler = (evt) => { evt.preventDefault(); const { retryTokenInput } = evt.target as HTMLFormElement & { retryTokenInput: HTMLInputElement; }; const t = retryTokenInput.value; onRetry(t); }; return ( {title} {message} Registration Token ); } export function RegistrationTokenStageDialog({ token, stageData, submitAuthDict, onCancel, }: StageComponentProps & { token?: string; }) { const { errorCode, error, session } = stageData; const handleSubmit = useCallback( (t: string) => { submitAuthDict({ type: AuthType.RegistrationToken, token: t, session, }); }, [session, submitAuthDict] ); useEffect(() => { if (token && !errorCode) handleSubmit(token); }, [handleSubmit, token, errorCode]); if (errorCode) { return ( ); } if (!token) { return ( ); } return null; }