更新ios
This commit is contained in:
101
MeAgent/App.js
Normal file
101
MeAgent/App.js
Normal file
@@ -0,0 +1,101 @@
|
||||
import React, { useCallback, useEffect, useState } from "react";
|
||||
import * as SplashScreen from "expo-splash-screen";
|
||||
import * as Font from "expo-font";
|
||||
import { Asset } from "expo-asset";
|
||||
import { Block, GalioProvider } from "galio-framework";
|
||||
import { NavigationContainer } from "@react-navigation/native";
|
||||
import { Image } from "react-native";
|
||||
import { Provider } from "react-redux";
|
||||
import { NativeBaseProvider } from "native-base";
|
||||
|
||||
// Keep the splash screen visible while we fetch resources
|
||||
SplashScreen.preventAutoHideAsync();
|
||||
|
||||
// Before rendering any navigation stack
|
||||
import { enableScreens } from "react-native-screens";
|
||||
enableScreens();
|
||||
|
||||
import Screens from "./navigation/Screens";
|
||||
import { Images, articles, argonTheme } from "./constants";
|
||||
import store from "./src/store";
|
||||
import nativeBaseTheme from "./src/theme";
|
||||
import { AuthProvider } from "./src/contexts/AuthContext";
|
||||
|
||||
// cache app images
|
||||
const assetImages = [
|
||||
Images.Onboarding,
|
||||
Images.LogoOnboarding,
|
||||
Images.Logo,
|
||||
Images.Pro,
|
||||
Images.ArgonLogo,
|
||||
Images.iOSLogo,
|
||||
Images.androidLogo,
|
||||
];
|
||||
|
||||
// cache product images
|
||||
articles.map((article) => assetImages.push(article.image));
|
||||
|
||||
function cacheImages(images) {
|
||||
return images.map((image) => {
|
||||
if (typeof image === "string") {
|
||||
return Image.prefetch(image);
|
||||
} else {
|
||||
return Asset.fromModule(image).downloadAsync();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
export default function App() {
|
||||
const [appIsReady, setAppIsReady] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
async function prepare() {
|
||||
try {
|
||||
//Load Resources
|
||||
await _loadResourcesAsync();
|
||||
// Pre-load fonts, make any API calls you need to do here
|
||||
await Font.loadAsync({
|
||||
"open-sans-regular": require("./assets/font/OpenSans-Regular.ttf"),
|
||||
"open-sans-light": require("./assets/font/OpenSans-Light.ttf"),
|
||||
"open-sans-bold": require("./assets/font/OpenSans-Bold.ttf"),
|
||||
});
|
||||
} catch (e) {
|
||||
console.warn(e);
|
||||
} finally {
|
||||
// Tell the application to render
|
||||
setAppIsReady(true);
|
||||
}
|
||||
}
|
||||
prepare();
|
||||
}, []);
|
||||
|
||||
const _loadResourcesAsync = async () => {
|
||||
return Promise.all([...cacheImages(assetImages)]);
|
||||
};
|
||||
|
||||
const onLayoutRootView = useCallback(async () => {
|
||||
if (appIsReady) {
|
||||
await SplashScreen.hideAsync();
|
||||
}
|
||||
}, [appIsReady]);
|
||||
|
||||
if (!appIsReady) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<Provider store={store}>
|
||||
<NativeBaseProvider theme={nativeBaseTheme}>
|
||||
<AuthProvider>
|
||||
<NavigationContainer onReady={onLayoutRootView}>
|
||||
<GalioProvider theme={argonTheme}>
|
||||
<Block flex>
|
||||
<Screens />
|
||||
</Block>
|
||||
</GalioProvider>
|
||||
</NavigationContainer>
|
||||
</AuthProvider>
|
||||
</NativeBaseProvider>
|
||||
</Provider>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user