in packages-fetcher/console-fetcher-risk-prompt/src/hooks/use-generate-code-button-props.ts [44:95]
export default function useGenerateCodeButtonProps(authFormProps: TAuthFormProps): IHookResult {
const [stateVerifyUniqId, setStateVerifyUniqId] = useState<string>('');
const {
codeType,
accountId,
setRiskCanceledErrorProps
} = useModelProps();
const {
data: {
errorMessageObject
},
updateData
} = useDialog<IRiskPromptResolveData, IDialogData>();
const currentKeyOfErrorMessageObject = authFormProps.riskType === ERiskType.NEW_SUB ? authFormProps.verifyType : ESceneKey.MAIN_ACCOUNT;
const {
countDown,
setCountDown
} = useCountDown();
const showSendCodeSuccessTip = countDown > 0;
const generateCodeButtonProps = useMemo<IGenerateCodeButtonProps>(() => {
const sendVerifyCode = (): Promise<void> => {
return dataSendVerifyCode({
...authFormProps,
accountId,
codeType,
setRiskCanceledErrorProps
}).then(requestId => {
// 验证码发送成功后需要清空错误
updateData({
errorMessageObject: {
...errorMessageObject,
[currentKeyOfErrorMessageObject]: ''
}
});
setCountDown(SEND_CODE_SUCCESS_TIP_DURATION);
setStateVerifyUniqId(requestId);
});
};
return {
verifyType: authFormProps.verifyType || '',
sendVerifyCode
};
}, [authFormProps, codeType, accountId, errorMessageObject, currentKeyOfErrorMessageObject, updateData, setCountDown, setRiskCanceledErrorProps]);
return {
generateCodeButtonProps,
showSendCodeSuccessTip,
verifyUniqId: stateVerifyUniqId
};
}