import { ChallengePrompt, ChallengeValidation, ProtectionSessionDurations, } from '@standardnotes/snjs'; import { FunctionComponent } from 'preact'; import { useEffect, useRef } from 'preact/hooks'; import { DecoratedInput } from '../DecoratedInput'; import { DecoratedPasswordInput } from '../DecoratedPasswordInput'; import { ChallengeModalValues } from './ChallengeModal'; type Props = { prompt: ChallengePrompt; values: ChallengeModalValues; index: number; onValueChange: (value: string | number, prompt: ChallengePrompt) => void; isInvalid: boolean; }; export const ChallengeModalPrompt: FunctionComponent = ({ prompt, values, index, onValueChange, isInvalid, }) => { const inputRef = useRef(null); useEffect(() => { if (index === 0) { inputRef.current?.focus(); } }, [index]); useEffect(() => { if (isInvalid) { inputRef.current?.focus(); } }, [isInvalid]); return ( <> {prompt.validation === ChallengeValidation.ProtectionSessionDuration ? (
Allow protected access for
{ProtectionSessionDurations.map((option) => { const selected = option.valueInSeconds === values[prompt.id].value; return ( ); })}
) : prompt.secureTextEntry ? ( onValueChange(value, prompt)} /> ) : ( onValueChange(value, prompt)} /> )} {isInvalid && (
Invalid authentication, please try again.
)} ); };