import * as React from "react";
import * as eva from "@eva-design/eva";
import {
ApplicationProvider,
Layout,
Button,
IconRegistry,
Text,
Modal,
} from "@ui-kitten/components";
import { EvaIconsPack } from "@ui-kitten/eva-icons";
import { default as theme } from "./theme.json"; // <-- Import app theme
import { default as customMapping } from "./mapping.json"; // <-- Import app theme
import { SplashScreen } from "expo";
import * as Font from "expo-font";
import { Ionicons } from "@expo/vector-icons";
import { NavigationContainer } from "@react-navigation/native";
import {
createStackNavigator,
CardStyleInterpolators,
} from "@react-navigation/stack";
import Dialog from "./components/Dialog";
import { useModel } from "flooks";
import * as models from "./models";
import LoadingModel from "./navigation/LoadingModel";
import BottomTabNavigator from "./navigation/BottomTabNavigator";
import LoginStackNavigator from "./navigation/LoginStackNavigator";
import GuideStackNavigator from "./navigation/GuideStackNavigator";
import BasicScreens from "./navigation/BasicNavigator";
import { navigationRef } from "./navigation/RootNavigation";
import * as ApplyStatus from "./config/ApplyStatus";
const Stack = createStackNavigator();
const config = {
animation: "spring",
config: {
stiffness: 1000,
damping: 500,
mass: 3,
overshootClamping: true,
restDisplacementThreshold: 0.01,
restSpeedThreshold: 0.01,
},
};
export default function App(props) {
const [isLoadingComplete, setLoadingComplete] = React.useState(false);
// Load any resources or data that we need prior to rendering the app
React.useEffect(() => {
async function loadResourcesAndDataAsync() {
try {
SplashScreen.preventAutoHide();
// Load fonts
await Font.loadAsync({
...Ionicons.font,
"space-mono": require("./assets/fonts/SpaceMono-Regular.ttf"),
});
} catch (e) {
// We might want to provide this error information to an error reporting service
console.warn(e);
} finally {
setLoadingComplete(true);
SplashScreen.hide();
}
}
loadResourcesAndDataAsync();
}, []);
if (!isLoadingComplete && !props.skipLoadingScreen) {
return null;
} else {
return (
<>
{/* 首页tab组件页面 */}
{/* 注册后指南页面 */}
{/* 登录部分页面 */}
{/* 基础功能页面 */}
{BasicScreens(Stack.Screen)}
>
);
}
}
const container = {
flex: 1,
backgroundColor: "#fff",
};