Files
inji-wallet/screens/PasscodeScreenController.ts
abhip2565 1914d4d118 [INJIMOB-2576] fix app lockout issue when app exited in passcode screen. (#1752)
* [INJIMOB-2576] fix app lockout issue when app exited in passcode screen.

Signed-off-by: Abhishek Paul <paul.apaul.abhishek.ap@gmail.com>

* [INJIMOB-2653] modify and fix  checksum of boost and generate patch for boost podspec update

Signed-off-by: Abhishek Paul <paul.apaul.abhishek.ap@gmail.com>

---------

Signed-off-by: Abhishek Paul <paul.apaul.abhishek.ap@gmail.com>
2025-01-13 14:29:20 +05:30

68 lines
1.9 KiB
TypeScript

import {useSelector} from '@xstate/react';
import {useContext, useEffect, useState} from 'react';
import {
AuthEvents,
selectAuthorized,
selectPasscode,
selectPasscodeSalt,
selectIsBiometricToggleFromSettings,
} from '../machines/auth';
import {PasscodeRouteProps} from '../routes';
import {GlobalContext} from '../shared/GlobalContext';
import {
getEndEventData,
getEventType,
sendEndEvent,
} from '../shared/telemetry/TelemetryUtils';
import {TelemetryConstants} from '../shared/telemetry/TelemetryConstants';
import {SettingsEvents} from '../machines/settings';
export function usePasscodeScreen(props: PasscodeRouteProps) {
const {appService} = useContext(GlobalContext);
const authService = appService.children.get('auth');
const settingsService = appService.children.get('settings');
const isAuthorized = useSelector(authService, selectAuthorized);
const isPasscodeSet = () => !!passcode;
const [passcode, setPasscode] = useState('');
const [error, setError] = useState('');
useEffect(() => {
if (isAuthorized) {
sendEndEvent(
getEndEventData(
getEventType(props.route.params?.setup),
TelemetryConstants.EndEventStatus.success,
),
);
props.navigation.reset({
index: 0,
routes: [{name: 'Main'}],
});
}
}, [isAuthorized]);
return {
isPasscodeSet,
passcode,
setPasscode,
error,
setError,
storedPasscode: useSelector(authService, selectPasscode),
toggleUnlock: useSelector(authService, selectIsBiometricToggleFromSettings),
LOGIN: () => {
authService.send(AuthEvents.LOGIN());
},
SETUP_PASSCODE: () => {
authService.send(AuthEvents.SETUP_PASSCODE(passcode));
settingsService?.send(
SettingsEvents.TOGGLE_BIOMETRIC_UNLOCK(false, true),
);
},
storedSalt: useSelector(authService, selectPasscodeSalt),
};
}