diff --git a/app/containers/Passcode/Base/index.js b/app/containers/Passcode/Base/index.js index d5537302a..7b24e5aef 100644 --- a/app/containers/Passcode/Base/index.js +++ b/app/containers/Passcode/Base/index.js @@ -22,8 +22,10 @@ const Base = forwardRef(({ const dotsRef = useRef(); const [passcode, setPasscode] = useState(''); + const clearPasscode = () => setPasscode(''); + const wrongPasscode = () => { - setPasscode(''); + clearPasscode(); dotsRef?.current?.shake(500); Haptics.notificationAsync(Haptics.NotificationFeedbackType.Error); }; @@ -52,7 +54,6 @@ const Base = forwardRef(({ default: break; } - return ''; } return currentPasscode; }); @@ -66,7 +67,7 @@ const Base = forwardRef(({ }); useImperativeHandle(ref, () => ({ - wrongPasscode, animate + wrongPasscode, animate, clearPasscode })); return ( diff --git a/app/containers/Passcode/PasscodeChoose.js b/app/containers/Passcode/PasscodeChoose.js index cf5d0c0fd..3114ebaac 100644 --- a/app/containers/Passcode/PasscodeChoose.js +++ b/app/containers/Passcode/PasscodeChoose.js @@ -7,23 +7,30 @@ import { TYPE } from './constants'; import I18n from '../../i18n'; const PasscodeEnter = ({ theme, finishProcess }) => { + const chooseRef = useRef(null); const confirmRef = useRef(null); const [subtitle, setSubtitle] = useState(null); const [status, setStatus] = useState(TYPE.CHOOSE); const [previousPasscode, setPreviouPasscode] = useState(null); const firstStep = (p) => { - setStatus(TYPE.CONFIRM); - setPreviouPasscode(p); + setTimeout(() => { + setStatus(TYPE.CONFIRM); + setPreviouPasscode(p); + confirmRef?.current?.clearPasscode(); + }, 200); }; const changePasscode = p => finishProcess && finishProcess(p); const onError = () => { - setStatus(TYPE.CHOOSE); - setSubtitle(I18n.t('Passcode_choose_error')); - confirmRef?.current?.animate('shake'); - Haptics.notificationAsync(Haptics.NotificationFeedbackType.Error); + setTimeout(() => { + setStatus(TYPE.CHOOSE); + setSubtitle(I18n.t('Passcode_choose_error')); + chooseRef?.current?.animate('shake'); + chooseRef?.current?.clearPasscode(); + Haptics.notificationAsync(Haptics.NotificationFeedbackType.Error); + }, 200); }; if (status === TYPE.CONFIRM) { @@ -42,6 +49,7 @@ const PasscodeEnter = ({ theme, finishProcess }) => { return (