Skip to content

Commit

Permalink
fix: Fix app returning to last screen after a force restart
Browse files Browse the repository at this point in the history
  • Loading branch information
gmaclennan committed May 24, 2019
1 parent fa39efc commit 51828e6
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion src/frontend/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import * as React from "react";
import debug from "debug";
// import { useScreens } from "react-native-screens";
import SplashScreen from "react-native-splash-screen";
import AsyncStorage from "@react-native-community/async-storage";

import ErrorScreen from "./screens/UncaughtError";
import AppLoading from "./AppLoading";
Expand All @@ -17,6 +18,18 @@ const log = debug("mapeo:App");
// WARNING: This needs to change if we change the navigation structure
const NAV_STORE_KEY = "@MapeoNavigation@3";

const persistNavigationState = async navState => {
try {
await AsyncStorage.setItem(NAV_STORE_KEY, JSON.stringify(navState));
} catch (err) {
log("Error saving navigation state", err);
}
};
const loadNavigationState = async () => {
const jsonString = await AsyncStorage.getItem(NAV_STORE_KEY);
return JSON.parse(jsonString);
};

// Use native navigation screens, see: https://github.com/kmagiera/react-native-screens
// useScreens();

Expand Down Expand Up @@ -65,7 +78,10 @@ const App = () => (
mapeo-core server. AppLoading only renders children once the server
is ready and listening */}
<AppProvider>
<AppContainer persistenceKey={NAV_STORE_KEY} />
<AppContainer
persistNavigationState={persistNavigationState}
loadNavigationState={loadNavigationState}
/>
</AppProvider>
</AppLoading>
</PermissionsContext.Provider>
Expand Down

0 comments on commit 51828e6

Please sign in to comment.