Fix deeplink when app is suspended (#812)

* Update Navigation.tsx

Missing If statement within the Deep Linking function that broke the ability to change state to hometab

* Updated the function correctly, I missed a bracket

* format

* add pre-existing home state when unspecified path

* Remove unnecessary log

---------

Co-authored-by: Gai <68623807+that-gai-gai@users.noreply.github.com>
Co-authored-by: that-gai-gai <kgai@protonmail.com>
zio/stable
Ansh 2023-05-30 19:16:29 -07:00 committed by GitHub
parent 421f29ad98
commit 3cb8169a4f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 2 deletions

View File

@ -410,7 +410,16 @@ const LINKING = {
if (name === 'Notifications') {
return buildStateObject('NotificationsTab', 'Notifications', params)
}
return buildStateObject('HomeTab', name, params)
if (name === 'Home') {
return buildStateObject('HomeTab', 'Home', params)
}
// if the path is something else, like a post, profile, or even settings, we need to initialize the home tab as pre-existing state otherwise the back button will not work
return buildStateObject('HomeTab', name, params, [
{
name: 'Home',
params: {},
},
])
} else {
return buildStateObject('Flat', name, params)
}

View File

@ -55,10 +55,15 @@ export function getTabState(state: State | undefined, tab: string): TabState {
return TabState.Outside
}
type ExistingState = {
name: string
params?: RouteParams
}
export function buildStateObject(
stack: string,
route: string,
params: RouteParams,
state: ExistingState[] = [],
) {
if (stack === 'Flat') {
return {
@ -70,7 +75,7 @@ export function buildStateObject(
{
name: stack,
state: {
routes: [{name: route, params}],
routes: [...state, {name: route, params}],
},
},
],