diff --git a/app/src/navigation/deeplinks.ts b/app/src/navigation/deeplinks.ts index 72ee1db3f..dc1cac680 100644 --- a/app/src/navigation/deeplinks.ts +++ b/app/src/navigation/deeplinks.ts @@ -125,7 +125,9 @@ export const handleUrl = (selfClient: SelfClient, uri: string) => { selfClient.getSelfAppState().setSelfApp(selfAppJson); selfClient.getSelfAppState().startAppListener(selfAppJson.sessionId); - navigationRef.navigate('Prove' as never); + navigationRef.reset( + createDeeplinkNavigationState('Prove', correctParentScreen), + ); return; } catch (error) { @@ -140,7 +142,9 @@ export const handleUrl = (selfClient: SelfClient, uri: string) => { selfClient.getSelfAppState().cleanSelfApp(); selfClient.getSelfAppState().startAppListener(sessionId); - navigationRef.navigate('Prove' as never); + navigationRef.reset( + createDeeplinkNavigationState('Prove', correctParentScreen), + ); } else if (mock_passport) { try { const data = JSON.parse(mock_passport); diff --git a/app/src/navigation/verification.ts b/app/src/navigation/verification.ts index 87209a5e0..24492bdfc 100644 --- a/app/src/navigation/verification.ts +++ b/app/src/navigation/verification.ts @@ -17,6 +17,7 @@ const verificationScreens = { options: { headerShown: false, animation: 'slide_from_bottom', + gestureEnabled: false, } as NativeStackNavigationOptions, }, Prove: { @@ -29,6 +30,7 @@ const verificationScreens = { headerTitleStyle: { color: white, }, + gestureEnabled: false, } as NativeStackNavigationOptions, }, QRCodeTrouble: { diff --git a/app/tests/src/navigation/deeplinks.test.ts b/app/tests/src/navigation/deeplinks.test.ts index b22526d08..1c97a10b3 100644 --- a/app/tests/src/navigation/deeplinks.test.ts +++ b/app/tests/src/navigation/deeplinks.test.ts @@ -90,7 +90,10 @@ describe('deeplinks', () => { expect(mockStartAppListener).toHaveBeenCalledWith('abc'); const { navigationRef } = require('@/navigation'); - expect(navigationRef.navigate).toHaveBeenCalledWith('Prove'); + expect(navigationRef.reset).toHaveBeenCalledWith({ + index: 1, + routes: [{ name: 'Home' }, { name: 'Prove' }], + }); }); it('handles sessionId parameter', () => { @@ -113,7 +116,10 @@ describe('deeplinks', () => { expect(mockStartAppListener).toHaveBeenCalledWith('123'); const { navigationRef } = require('@/navigation'); - expect(navigationRef.navigate).toHaveBeenCalledWith('Prove'); + expect(navigationRef.reset).toHaveBeenCalledWith({ + index: 1, + routes: [{ name: 'Home' }, { name: 'Prove' }], + }); }); it('handles mock_passport parameter', () => {