xref: /MusicFree/src/entry/index.tsx (revision 9c72192f09e3e71b70c1fb446447ba438c4fffbd)
1import React from 'react';
2import {NavigationContainer} from '@react-navigation/native';
3import {createNativeStackNavigator} from '@react-navigation/native-stack';
4import bootstrap from './bootstrap';
5import {routes} from './router';
6import {GestureHandlerRootView} from 'react-native-gesture-handler';
7import Dialogs from '@/components/dialogs';
8import Toast from 'react-native-toast-message';
9import Panels from '@/components/panels';
10import PageBackground from '@/components/base/pageBackground';
11import {SafeAreaProvider} from 'react-native-safe-area-context';
12import toastConfig from '@/components/base/toast';
13import Debug from '@/components/debug';
14import {ImageViewComponent} from '@/components/imageViewer';
15import {PortalHost} from '@/components/base/portal';
16import globalStyle from '@/constants/globalStyle';
17import Theme from '@/core/theme';
18import {BootstrapComp} from './useBootstrap';
19
20/**
21 * 字体颜色
22 */
23
24bootstrap();
25const Stack = createNativeStackNavigator<any>();
26
27export default function Pages() {
28    const theme = Theme.useTheme();
29
30    return (
31        <>
32            <BootstrapComp />
33            <GestureHandlerRootView style={globalStyle.flex1}>
34                <SafeAreaProvider>
35                    <NavigationContainer theme={theme}>
36                        <PageBackground />
37                        <Stack.Navigator
38                            initialRouteName={routes[0].path}
39                            screenOptions={{
40                                headerShown: false,
41                                animation: 'slide_from_right',
42                                animationDuration: 100,
43                            }}>
44                            {routes.map(route => (
45                                <Stack.Screen
46                                    key={route.path}
47                                    name={route.path}
48                                    component={route.component}
49                                />
50                            ))}
51                        </Stack.Navigator>
52
53                        <Panels />
54                        <Dialogs />
55                        <ImageViewComponent />
56                        <Toast config={toastConfig} />
57                        <Debug />
58                        <PortalHost />
59                    </NavigationContainer>
60                </SafeAreaProvider>
61            </GestureHandlerRootView>
62        </>
63    );
64}
65