xref: /MusicFree/src/entry/index.tsx (revision 6cfecf1cdd150fc94c5ad42fede7d65068b9ea40)
14060c00aS猫头猫import React from 'react';
2bf6e62f2S猫头猫import {NavigationContainer} from '@react-navigation/native';
3bf6e62f2S猫头猫import {createNativeStackNavigator} from '@react-navigation/native-stack';
4bf6e62f2S猫头猫import bootstrap from './bootstrap';
5e7fa3837S猫头猫import {routes} from './router';
6bf6e62f2S猫头猫import {GestureHandlerRootView} from 'react-native-gesture-handler';
7bf6e62f2S猫头猫import Dialogs from '@/components/dialogs';
8bf6e62f2S猫头猫import Toast from 'react-native-toast-message';
9bf6e62f2S猫头猫import Panels from '@/components/panels';
10*6cfecf1cS猫头猫import {DarkTheme, DefaultTheme} from './theme';
11e22d5e4fS猫头猫import Config from '@/core/config';
1219dc08ecS猫头猫import PageBackground from '@/components/base/pageBackground';
131c06c799S猫头猫import {SafeAreaProvider} from 'react-native-safe-area-context';
142a3194f5S猫头猫import toastConfig from '@/components/base/toast';
15cf2d630eS猫头猫import useBootstrap from './useBootstrap';
16ea6d708fS猫头猫import Debug from '@/components/debug';
17a33ab089S猫头猫import {ImageViewComponent} from '@/components/imageViewer';
187a8d024eS猫头猫import {PortalHost} from '@/components/base/portal';
19*6cfecf1cS猫头猫import globalStyle from '@/constants/globalStyle';
20bf6e62f2S猫头猫
21bf6e62f2S猫头猫/**
22bf6e62f2S猫头猫 * 字体颜色
23bf6e62f2S猫头猫 */
24bf6e62f2S猫头猫
25bf6e62f2S猫头猫bootstrap();
26e7fa3837S猫头猫const Stack = createNativeStackNavigator<any>();
27bf6e62f2S猫头猫
28bf6e62f2S猫头猫export default function Pages() {
29e22d5e4fS猫头猫    const themeName = Config.useConfig('setting.theme.mode') ?? 'dark';
30e22d5e4fS猫头猫    const themeColors = Config.useConfig('setting.theme.colors') ?? {};
31*6cfecf1cS猫头猫    const theme = true ? DarkTheme : DefaultTheme;
32c7676810S猫头猫    const isCustom = themeName.includes('custom') ? true : false;
33c7676810S猫头猫    const mergedTheme = isCustom
34c7676810S猫头猫        ? {
350d39db21S猫头猫              ...theme,
360d39db21S猫头猫              colors: {
370d39db21S猫头猫                  ...theme.colors,
380d39db21S猫头猫                  ...themeColors,
390d39db21S猫头猫              },
40c7676810S猫头猫          }
41c7676810S猫头猫        : theme;
42bf6e62f2S猫头猫
43cf2d630eS猫头猫    useBootstrap();
44cf2d630eS猫头猫
45bf6e62f2S猫头猫    return (
46*6cfecf1cS猫头猫        <GestureHandlerRootView style={globalStyle.flex1}>
471c06c799S猫头猫            <SafeAreaProvider>
480d39db21S猫头猫                <NavigationContainer theme={mergedTheme}>
494060c00aS猫头猫                    <PageBackground />
50bf6e62f2S猫头猫                    <Stack.Navigator
51bf6e62f2S猫头猫                        initialRouteName={routes[0].path}
52bf6e62f2S猫头猫                        screenOptions={{
53bf6e62f2S猫头猫                            statusBarColor: 'transparent',
54bf6e62f2S猫头猫                            statusBarTranslucent: true,
55bf6e62f2S猫头猫                            headerShown: false,
56bf6e62f2S猫头猫                            animation: 'slide_from_right',
575f52c604S猫头猫                            animationDuration: 100,
58bf6e62f2S猫头猫                        }}>
59bf6e62f2S猫头猫                        {routes.map(route => (
60bf6e62f2S猫头猫                            <Stack.Screen
61bf6e62f2S猫头猫                                key={route.path}
62bf6e62f2S猫头猫                                name={route.path}
634060c00aS猫头猫                                component={route.component}
644060c00aS猫头猫                            />
65bf6e62f2S猫头猫                        ))}
66bf6e62f2S猫头猫                    </Stack.Navigator>
67bf6e62f2S猫头猫
684060c00aS猫头猫                    <Panels />
694060c00aS猫头猫                    <Dialogs />
70a33ab089S猫头猫                    <ImageViewComponent />
712a3194f5S猫头猫                    <Toast config={toastConfig} />
72ea6d708fS猫头猫                    <Debug />
737a8d024eS猫头猫                    <PortalHost />
74bf6e62f2S猫头猫                </NavigationContainer>
751c06c799S猫头猫            </SafeAreaProvider>
76bf6e62f2S猫头猫        </GestureHandlerRootView>
77bf6e62f2S猫头猫    );
78bf6e62f2S猫头猫}
79