Commit 88248ed1 by Giang Tran

fix bug re send otp

parent 25b6772d
......@@ -18,7 +18,11 @@ import {
} from 'react-native-confirmation-code-field';
import {getFontXD, HEIGHTXD, WIDTHXD} from '../../../Config/Functions';
import R from '.././../../assets/R';
import {verifyOTPApi, registorApi} from '../../../apis/Functions/users';
import {
verifyOTPApi,
registorApi,
getOTPApi,
} from '../../../apis/Functions/users';
import {useNavigation} from '@react-navigation/native';
import I18n from '../../../helper/i18/i18n';
import AppText from '../../../components/AppText';
......@@ -34,6 +38,8 @@ const CELL_COUNT = 4;
const ConfirmOTP = (propsa) => {
const [value, setValue] = useState('');
const [isReset, setReset] = useState(false);
const navigate = useNavigation();
const ref = useBlurOnFulfill({value, cellCount: CELL_COUNT});
......@@ -107,6 +113,32 @@ const ConfirmOTP = (propsa) => {
propsa.hideLoading();
}
};
const getOTP = async () => {
let res;
propsa.showLoading();
if (propsa.route.params.type == 'DEPOSIT') {
res = await getOTPApi({
platform: Platform.OS,
otp_by: propsa.user.email,
type: 'CUSTOMER_REQUEST_DEPOSIT',
});
} else {
res = await getOTPApi({
platform: Platform.OS,
otp_by: propsa.user.email,
type: 'REQUEST_WITHDRAW',
});
}
propsa.hideLoading();
if (res.data.code == 200) {
setReset(!isReset);
showAlert(TYPE.SUCCESS, I18n.t('Notification'), res.data.message);
} else {
showAlert(TYPE.ERROR, I18n.t('Notification'), res.data.message);
}
};
return (
<View style={{flex: 1}}>
<HeaderBack title={'VerifyOTP'} />
......@@ -142,14 +174,12 @@ const ConfirmOTP = (propsa) => {
<TouchableOpacity onPress={confirm} style={styles.btn}>
<AppText i18nKey={'Continue'} style={styles.txtBtn} />
</TouchableOpacity>
<TouchableOpacity
style={styles.wrapFooter}
onPress={() => navigate.goBack()}>
<TouchableOpacity style={styles.wrapFooter} onPress={getOTP}>
<Text style={styles.txtNote}>{I18n.t('OTPValidFiveMinute')}</Text>
<AppText i18nKey={'Re_send'} style={styles.txtSend} />
</TouchableOpacity>
<CountDown />
<CountDown isReset={isReset} />
</View>
</View>
);
......
......@@ -28,11 +28,13 @@ import {showLoading, hideLoading} from '../../actions/loadingAction';
import {connect} from 'react-redux';
import {showAlert, TYPE} from '../../components/DropdownAlert';
import CountDown from '../../components/CountDown';
import {getOTPApi} from '../../apis/Functions/users';
const CELL_COUNT = 4;
const ConfirmOTP = (propsa) => {
const [value, setValue] = useState('');
const [isReset, setReset] = useState(false);
const navigate = useNavigation();
......@@ -42,6 +44,22 @@ const ConfirmOTP = (propsa) => {
setValue,
});
const getOTP = async () => {
propsa.showLoading();
const res = await getOTPApi({
platform: Platform.OS,
otp_by: propsa.route.params.email,
type: 'FORGOT_PASSWORD',
});
propsa.hideLoading();
if (res.data.code == 200) {
setReset(!isReset);
showAlert(TYPE.SUCCESS, I18n.t('Notification'), res.data.message);
} else {
showAlert(TYPE.ERROR, I18n.t('Notification'), res.data.message);
}
};
const confirm = async () => {
if (!value) {
showAlert(TYPE.WARN, I18n.t('Notification'), I18n.t('EnterOTPRequest'));
......@@ -106,13 +124,11 @@ const ConfirmOTP = (propsa) => {
<TouchableOpacity onPress={confirm} style={styles.btn}>
<AppText i18nKey={'Continue'} style={styles.txtBtn} />
</TouchableOpacity>
<TouchableOpacity
style={styles.wrapFooter}
onPress={() => navigate.goBack()}>
<TouchableOpacity style={styles.wrapFooter} onPress={getOTP}>
<Text style={styles.txtNote}>{I18n.t('OTPValidFiveMinute')}</Text>
<AppText i18nKey={'Re_send'} style={styles.txtSend} />
</TouchableOpacity>
<CountDown />
<CountDown isReset={isReset} />
</View>
</View>
);
......
......@@ -19,7 +19,7 @@ import {
import {getFontXD, HEIGHTXD, WIDTHXD} from '../../Config/Functions';
import R from '../../assets/R';
import {NEWPASSWORD} from '../../routers/ScreenNames';
import {verifyOTPApi, registorApi} from '../../apis/Functions/users';
import {verifyOTPApi, registorApi, getOTPApi} from '../../apis/Functions/users';
import {useNavigation} from '@react-navigation/native';
import I18n from '../../helper/i18/i18n';
import AppText from '../../components/AppText';
......@@ -33,7 +33,7 @@ const CELL_COUNT = 4;
const ConfirmOTP = (propsa) => {
const [value, setValue] = useState('');
const [isReset, setReset] = useState(false);
const navigate = useNavigation();
const ref = useBlurOnFulfill({value, cellCount: CELL_COUNT});
......@@ -103,6 +103,22 @@ const ConfirmOTP = (propsa) => {
}
};
const getOTP = async () => {
propsa.showLoading();
const res = await getOTPApi({
platform: Platform.OS,
otp_by: propsa.route.params.email,
type: 'CUSTOMER_VERIFY',
});
propsa.hideLoading();
if (res.data.code == 200) {
setReset(!isReset);
showAlert(TYPE.SUCCESS, I18n.t('Notification'), res.data.message);
} else {
showAlert(TYPE.ERROR, I18n.t('Notification'), res.data.message);
}
};
return (
<View style={{flex: 1}}>
<HeaderBack title={'VerifyOTP'} />
......@@ -138,13 +154,11 @@ const ConfirmOTP = (propsa) => {
<TouchableOpacity onPress={confirm} style={styles.btn}>
<AppText i18nKey={'Continue'} style={styles.txtBtn} />
</TouchableOpacity>
<TouchableOpacity
style={styles.wrapFooter}
onPress={() => navigate.goBack()}>
<TouchableOpacity style={styles.wrapFooter} onPress={getOTP}>
<Text style={styles.txtNote}>{I18n.t('OTPValidFiveMinute')}</Text>
<AppText i18nKey={'Re_send'} style={styles.txtSend} />
</TouchableOpacity>
<CountDown />
<CountDown isReset={isReset} />
</View>
</View>
);
......
......@@ -8,12 +8,15 @@ const CountDown = (props) => {
const [count, setCount] = useState(300);
useEffect(() => {
setCount(300);
}, [props.isReset]);
useEffect(() => {
if (count == 0)
showAlert(TYPE.ERROR, I18n.t('Notification'), I18n.t('Overtime'));
}, [count]);
useEffect(() => {
clearTimeout();
if (count > 0) {
const timer = setTimeout(() => {
setCount(count - 1);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment