xref: /MusicFree/src/pages/home/index.tsx (revision 095287552b9baf2f2ceeb9397c563c292a4f7934)
1import React from 'react';
2import {StyleSheet} from 'react-native';
3
4import NavBar from './components/navBar';
5import MusicBar from '@/components/musicBar';
6import {createDrawerNavigator} from '@react-navigation/drawer';
7import HomeDrawer from './components/drawer';
8import {SafeAreaView} from 'react-native-safe-area-context';
9import StatusBar from '@/components/base/statusBar';
10import HorizonalSafeAreaView from '@/components/base/horizonalSafeAreaView';
11import globalStyle from '@/constants/globalStyle';
12import Theme from '@/core/theme';
13import HomeBody from './components/homeBody';
14import HomeBodyHorizonal from './components/homeBodyHorizonal';
15import useOrientation from '@/hooks/useOrientation';
16
17function Home() {
18    const orientation = useOrientation();
19
20    return (
21        <SafeAreaView edges={['top', 'bottom']} style={styles.appWrapper}>
22            <HomeStatusBar />
23            <HorizonalSafeAreaView style={globalStyle.flex1}>
24                <>
25                    <NavBar />
26                    {orientation === 'vertical' ? (
27                        <HomeBody />
28                    ) : (
29                        <HomeBodyHorizonal />
30                    )}
31                </>
32            </HorizonalSafeAreaView>
33            <MusicBar />
34        </SafeAreaView>
35    );
36}
37
38function HomeStatusBar() {
39    const theme = Theme.useTheme();
40
41    return (
42        <StatusBar
43            backgroundColor="transparent"
44            barStyle={theme.dark ? undefined : 'dark-content'}
45        />
46    );
47}
48
49// function Body() {
50//     const orientation = useOrientation();
51//     return (
52//         <ScrollView
53//             style={[
54//                 styles.appWrapper,
55//                 orientation === 'horizonal' ? styles.flexRow : null,
56//             ]}>
57//             <Operations orientation={orientation} />
58//         </ScrollView>
59//     );
60// }
61
62const LeftDrawer = createDrawerNavigator();
63export default function App() {
64    return (
65        <LeftDrawer.Navigator
66            screenOptions={{
67                headerShown: false,
68                drawerStyle: {
69                    width: '80%',
70                },
71            }}
72            initialRouteName="HOME-MAIN"
73            drawerContent={props => <HomeDrawer {...props} />}>
74            <LeftDrawer.Screen name="HOME-MAIN" component={Home} />
75        </LeftDrawer.Navigator>
76    );
77}
78
79const styles = StyleSheet.create({
80    appWrapper: {
81        flexDirection: 'column',
82        flex: 1,
83    },
84    flexRow: {
85        flexDirection: 'row',
86    },
87});
88