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