Fix initial preferences loading
This commit is contained in:
parent
7d0df0e7ce
commit
c3304c6f06
3 changed files with 10 additions and 4 deletions
9
App.tsx
9
App.tsx
|
@ -29,6 +29,7 @@ import { NavigationContainerRef } from '@react-navigation/core';
|
|||
import {
|
||||
defaultPreferences,
|
||||
PreferenceKeys,
|
||||
PreferencesType,
|
||||
retrievePreferences,
|
||||
} from './src/utils/asyncStorage';
|
||||
import PreferencesProvider from './src/components/providers/PreferencesProvider';
|
||||
|
@ -46,6 +47,7 @@ LogBox.ignoreLogs([
|
|||
|
||||
type StateType = {
|
||||
isLoading: boolean;
|
||||
initialPreferences: PreferencesType;
|
||||
};
|
||||
|
||||
export default class App extends React.Component<{}, StateType> {
|
||||
|
@ -61,6 +63,7 @@ export default class App extends React.Component<{}, StateType> {
|
|||
super(props);
|
||||
this.state = {
|
||||
isLoading: true,
|
||||
initialPreferences: defaultPreferences,
|
||||
};
|
||||
initLocales();
|
||||
this.navigatorRef = React.createRef();
|
||||
|
@ -103,9 +106,11 @@ export default class App extends React.Component<{}, StateType> {
|
|||
/**
|
||||
* Async loading is done, finish processing startup data
|
||||
*/
|
||||
onLoadFinished = () => {
|
||||
onLoadFinished = (values: Array<PreferencesType | void>) => {
|
||||
const [preferences] = values;
|
||||
this.setState({
|
||||
isLoading: false,
|
||||
initialPreferences: { ...(preferences as PreferencesType) },
|
||||
});
|
||||
SplashScreen.hide();
|
||||
};
|
||||
|
@ -133,7 +138,7 @@ export default class App extends React.Component<{}, StateType> {
|
|||
return null;
|
||||
}
|
||||
return (
|
||||
<PreferencesProvider initialPreferences={defaultPreferences}>
|
||||
<PreferencesProvider initialPreferences={this.state.initialPreferences}>
|
||||
<MainApp
|
||||
ref={this.navigatorRef}
|
||||
defaultHomeData={this.defaultHomeData}
|
||||
|
|
|
@ -320,7 +320,6 @@ type PropsType = {
|
|||
export default function MainNavigator(props: PropsType) {
|
||||
const { preferences } = usePreferences();
|
||||
const showIntro = getPreferenceBool(PreferenceKeys.showIntro, preferences);
|
||||
console.log(preferences);
|
||||
|
||||
return (
|
||||
<MainStackComponent
|
||||
|
|
|
@ -74,8 +74,10 @@ export function retrievePreferences(
|
|||
defaults: PreferencesType
|
||||
): Promise<PreferencesType> {
|
||||
return new Promise((resolve: (preferences: PreferencesType) => void) => {
|
||||
AsyncStorage.multiGet(Object.values(keys))
|
||||
AsyncStorage.multiGet(keys)
|
||||
.then((result) => {
|
||||
console.log(result);
|
||||
|
||||
const preferences = { ...defaults };
|
||||
result.forEach((item) => {
|
||||
let [key, value] = item;
|
||||
|
|
Loading…
Reference in a new issue