xref: /MusicFree/src/entry/index.tsx (revision 8e47be56b0121ae1a9c00382d70902276ffca225)
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                                statusBarColor: 'transparent',
41                                statusBarTranslucent: true,
42                                headerShown: false,
43                                animation: 'slide_from_right',
44                                animationDuration: 100,
45                            }}>
46                            {routes.map(route => (
47                                <Stack.Screen
48                                    key={route.path}
49                                    name={route.path}
50                                    component={route.component}
51                                />
52                            ))}
53                        </Stack.Navigator>
54
55                        <Panels />
56                        <Dialogs />
57                        <ImageViewComponent />
58                        <Toast config={toastConfig} />
59                        <Debug />
60                        <PortalHost />
61                    </NavigationContainer>
62                </SafeAreaProvider>
63            </GestureHandlerRootView>
64        </>
65    );
66}
67