Files
inji-wallet/screens/Request/RequestLayoutController.ts
dhivya0413 769ed54bcf [INJI-195] Upgrade React native version to 0.71.8 (#824)
* chore(INJI-195): upgrade react native version and dependencies

* chore(INJI-195): upgrade expo version and dependencies

* chore(INJI-195): modify associated files on version upgrade

* chore(INJI-295): fixed react native flipper and patch packages

* chore(INJI-195): fix for expo prebuild

* chore(INJI-195): expo linked to android/ios projects

* chore(INJI-195): update metro config

* chore(INJI-195): fix ios build with mmkv storage patch

* chore(INJI-195): gradle version modified

* chore(INJI-195): fixed rn version 0.71.8 due to mmkv library issue

* chore(INJI-195): removed files in android

* chore(INJI-195): fix 0.71.8 for iOS project through pods with expo linking

* chore(INJI-195): fix for custom fonts added through pods due to rn linkage

* chore(INJI-195): fix for removing assets.car generated from pods

* Modify Node version in pipeline (#806)

* chore(INJI-195): fix for android splash screen not shown up

* chore(INJI-195): upgraded to node 18 in pipeline

* chore(INJI-195): add the pod install twice to remove duplicates via script workaround (#807)

Signed-off-by: dhivya0413 <120356578+dhivya0413@users.noreply.github.com>

* INJI-195 Set the signing team for iOS  (#810)

* chore(INJI-195): add the pod install twice to remove duplicates via script workaround

* chore(INJI-195): set the signing team for ios build

---------

Signed-off-by: dhivya0413 <120356578+dhivya0413@users.noreply.github.com>

* Modify github runner to self hosted runner (#811)

* chore(INJI-195): add the pod install twice to remove duplicates via script workaround

* chore(INJI-195): set the signing team for ios build

* chore(INJI-195): set the self hosted runner for ios build

---------

Signed-off-by: dhivya0413 <120356578+dhivya0413@users.noreply.github.com>

* Modify self hosted runner to github hosted runner  (#813)

* chore(INJI-195): add the pod install twice to remove duplicates via script workaround

* chore(INJI-195): set the signing team for ios build

* chore(INJI-195): set the self hosted runner for ios build

* chore(INJI-195): modify the self hosted to github hosted runner

---------

Signed-off-by: dhivya0413 <120356578+dhivya0413@users.noreply.github.com>

* chore(INJI-195): modify the self hosted to github hosted runner

* chore(INJI-195): set the code signing identity for ios build

* chore(INJI-195): assigned app icon files to asset

---------

Signed-off-by: dhivya0413 <120356578+dhivya0413@users.noreply.github.com>
Signed-off-by: Swati Goel <meet2swati@gmail.com>
Co-authored-by: Swati Goel <meet2swati@gmail.com>
2023-09-13 11:53:59 +05:30

97 lines
3.0 KiB
TypeScript

import {NavigationProp, useNavigation} from '@react-navigation/native';
import {useSelector} from '@xstate/react';
import {useContext, useEffect} from 'react';
import {MainBottomTabParamList} from '../../routes/main';
import {GlobalContext} from '../../shared/GlobalContext';
import {
selectIsSavingFailedInViewingVc,
selectIsWaitingForConnection,
selectSenderInfo,
selectIsDone,
selectIsNavigatingToReceivedCards,
selectIsNavigatingToHome,
} from '../../machines/bleShare/request/selectors';
import {
selectIsAccepted,
selectIsDisconnected,
selectIsHandlingBleError,
selectIsRejected,
selectIsReviewing,
selectBleError,
} from '../../machines/bleShare/commonSelectors';
import {RequestEvents} from '../../machines/bleShare/request/requestMachine';
import {
BOTTOM_TAB_ROUTES,
REQUEST_ROUTES,
RequestStackParamList,
} from '../../routes/routesConstants';
type RequestLayoutNavigation = NavigationProp<
RequestStackParamList & MainBottomTabParamList
>;
export function useRequestLayout() {
const {appService} = useContext(GlobalContext);
const requestService = appService.children.get('request');
const navigation = useNavigation<RequestLayoutNavigation>();
useEffect(() => {
const subscriptions = [
navigation.addListener('focus', () =>
requestService.send(RequestEvents.SCREEN_FOCUS()),
),
navigation.addListener('blur', () =>
requestService.send(RequestEvents.SCREEN_BLUR()),
),
];
return () => {
subscriptions.forEach(unsubscribe => unsubscribe());
};
}, []);
const isReviewing = useSelector(requestService, selectIsReviewing);
const isDone = useSelector(requestService, selectIsDone);
const isWaitingForConnection = useSelector(
requestService,
selectIsWaitingForConnection,
);
const isNavigatingToReceivedCards = useSelector(
requestService,
selectIsNavigatingToReceivedCards,
);
const isNavigationToHome = useSelector(
requestService,
selectIsNavigatingToHome,
);
useEffect(() => {
if (isNavigationToHome) {
navigation.navigate(BOTTOM_TAB_ROUTES.home);
} else if (isReviewing) {
navigation.navigate(REQUEST_ROUTES.ReceiveVcScreen);
} else if (isWaitingForConnection) {
navigation.navigate(REQUEST_ROUTES.RequestScreen);
}
}, [isNavigationToHome, isReviewing, isWaitingForConnection]);
return {
senderInfo: useSelector(requestService, selectSenderInfo),
isAccepted: useSelector(requestService, selectIsAccepted),
isRejected: useSelector(requestService, selectIsRejected),
isDisconnected: useSelector(requestService, selectIsDisconnected),
isBleError: useSelector(requestService, selectIsHandlingBleError),
bleError: useSelector(requestService, selectBleError),
IsSavingFailedInViewingVc: useSelector(
requestService,
selectIsSavingFailedInViewingVc,
),
isReviewing,
isDone,
isNavigatingToReceivedCards,
DISMISS: () => requestService.send(RequestEvents.DISMISS()),
RESET: () => requestService.send(RequestEvents.RESET()),
};
}