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