in packages-fetcher/console-fetcher-risk-prompt/src/rc/verify-code-input/index.tsx [106:175]
export default function VerifyCodeInput({
inputWidth,
dialogSubmitType,
verifyCodeInputType,
generateCodeButtonProps,
keyOfAuthErrorMessageObject,
handleInputChange,
...inputProps
}: IVerifyCodeInputProps): JSX.Element {
const {
codeType,
accountId,
setRiskCanceledErrorProps,
reRequestWithVerifyResult
} = useModelProps();
const contentContext = useDialog<IRiskPromptResolveData, IDialogData>();
const {
updateData,
data: {
dialogBlocked,
mainAccountRiskInfo,
errorMessageObject,
primaryButtonDisabledObject
}
} = contentContext;
const [stateVerifyCode, setStateVerifyCode] = useState<string>('');
const [stateInputFocused, setStateInputFocused] = useState<boolean>(false);
const [stateErrorMessage, setStateErrorMessage] = useState<string>(intl('message:vmfa_input_empty_tip'));
const [stateNoWindVaneHandler, setStateNoWindVaneHandler] = useState<boolean>(false);
const updateErrorMessage = useCallback((errorMessage: string) => {
if (keyOfAuthErrorMessageObject) {
updateData({
errorMessageObject: {
...errorMessageObject,
[keyOfAuthErrorMessageObject]: errorMessage
}
});
}
}, [errorMessageObject, keyOfAuthErrorMessageObject, updateData]);
const onChange = useCallback((verifyCode: string) => {
const inputErrorMessage = getInputError(verifyCode);
setStateErrorMessage(inputErrorMessage);
setStateVerifyCode(verifyCode);
if (keyOfAuthErrorMessageObject) {
updateData({
primaryButtonDisabledObject: {
...primaryButtonDisabledObject,
[keyOfAuthErrorMessageObject]: Boolean(inputErrorMessage)
}
});
}
if (handleInputChange) {
handleInputChange({
verifyCode
});
}
}, [keyOfAuthErrorMessageObject, primaryButtonDisabledObject, handleInputChange, updateData]);
const innerRight = useMemo(() => {
return <XIcon onClick={() => {
setStateVerifyCode('');
updateErrorMessage('');
}} />;
}, [updateErrorMessage]);