1bf6e62f2S猫头猫import React from 'react'; 2bf6e62f2S猫头猫import { 3bf6e62f2S猫头猫 BackHandler, 4*3ee62d1bS猫头猫 FlatList, 5bf6e62f2S猫头猫 ImageBackground, 6bf6e62f2S猫头猫 StyleSheet, 7bf6e62f2S猫头猫 Text, 8bf6e62f2S猫头猫 View, 9bf6e62f2S猫头猫} from 'react-native'; 10bf6e62f2S猫头猫import rpx from '@/utils/rpx'; 11bf6e62f2S猫头猫import {DrawerContentScrollView} from '@react-navigation/drawer'; 12bf6e62f2S猫头猫import {Button, Card, IconButton} from 'react-native-paper'; 13bf6e62f2S猫头猫import MusicQueue from '@/common/musicQueue'; 14bf6e62f2S猫头猫import ListItem from '@/components/listItem'; 15bf6e62f2S猫头猫import {useNavigation} from '@react-navigation/native'; 16bf6e62f2S猫头猫import {ROUTE_PATH} from '@/entry/router'; 17bf6e62f2S猫头猫import {fontSizeConst, fontWeightConst} from '@/constants/uiConst'; 18bf6e62f2S猫头猫import ThemeText from '@/components/themeText'; 1965fc5a50S猫头猫import PageBackground from '@/components/pageBackground'; 20bf6e62f2S猫头猫 21bf6e62f2S猫头猫interface IDrawerProps {} 22bf6e62f2S猫头猫 23bf6e62f2S猫头猫export default function HomeDrawer(props: IDrawerProps) { 24bf6e62f2S猫头猫 const navigation = useNavigation<any>(); 25bf6e62f2S猫头猫 function navigateToSetting(settingType: string) { 26bf6e62f2S猫头猫 navigation.navigate(ROUTE_PATH.SETTING, { 27bf6e62f2S猫头猫 type: settingType, 28bf6e62f2S猫头猫 }); 29bf6e62f2S猫头猫 } 30*3ee62d1bS猫头猫 31*3ee62d1bS猫头猫 const basicSetting = [ 32*3ee62d1bS猫头猫 { 33*3ee62d1bS猫头猫 icon: 'cog-outline', 34*3ee62d1bS猫头猫 title: '基本设置', 35*3ee62d1bS猫头猫 onPress: () => { 36*3ee62d1bS猫头猫 navigateToSetting('basic'); 37*3ee62d1bS猫头猫 }, 38*3ee62d1bS猫头猫 }, 39*3ee62d1bS猫头猫 { 40*3ee62d1bS猫头猫 icon: 'language-javascript', 41*3ee62d1bS猫头猫 title: '插件设置', 42*3ee62d1bS猫头猫 onPress: () => { 43*3ee62d1bS猫头猫 navigateToSetting('plugin'); 44*3ee62d1bS猫头猫 }, 45*3ee62d1bS猫头猫 }, 46*3ee62d1bS猫头猫 { 47*3ee62d1bS猫头猫 icon: 'tshirt-v-outline', 48*3ee62d1bS猫头猫 title: '主题设置', 49*3ee62d1bS猫头猫 onPress: () => { 50*3ee62d1bS猫头猫 navigateToSetting('theme'); 51*3ee62d1bS猫头猫 }, 52*3ee62d1bS猫头猫 }, 53*3ee62d1bS猫头猫 { 54*3ee62d1bS猫头猫 icon: 'backup-restore', 55*3ee62d1bS猫头猫 title: '备份与恢复', 56*3ee62d1bS猫头猫 onPress: () => {}, 57*3ee62d1bS猫头猫 }, 58*3ee62d1bS猫头猫 ] as const; 59*3ee62d1bS猫头猫 60bf6e62f2S猫头猫 return ( 6165fc5a50S猫头猫 <> 6265fc5a50S猫头猫 <PageBackground></PageBackground> 63bf6e62f2S猫头猫 <DrawerContentScrollView {...props} style={style.scrollWrapper}> 64bf6e62f2S猫头猫 <View style={style.header}> 65bf6e62f2S猫头猫 <ThemeText style={style.title}>Music Free</ThemeText> 668b51f01aS猫头猫 <IconButton icon={'qrcode-scan'} size={rpx(36)}></IconButton> 67bf6e62f2S猫头猫 </View> 68bf6e62f2S猫头猫 <Card style={style.card}> 69bf6e62f2S猫头猫 <Card.Title 708b51f01aS猫头猫 title={ 718b51f01aS猫头猫 <ThemeText style={style.cardTitle}>设置</ThemeText> 728b51f01aS猫头猫 }></Card.Title> 73bf6e62f2S猫头猫 <Card.Content> 74*3ee62d1bS猫头猫 {basicSetting.map(item => ( 75bf6e62f2S猫头猫 <ListItem 76*3ee62d1bS猫头猫 key={item.title} 77*3ee62d1bS猫头猫 itemPaddingHorizontal={0} 78*3ee62d1bS猫头猫 left={{ 79*3ee62d1bS猫头猫 icon: { 80*3ee62d1bS猫头猫 name: item.icon, 81*3ee62d1bS猫头猫 size: 'normal', 82*3ee62d1bS猫头猫 fontColor: 'normal', 83*3ee62d1bS猫头猫 }, 84*3ee62d1bS猫头猫 width: rpx(48), 85*3ee62d1bS猫头猫 }} 86*3ee62d1bS猫头猫 title={item.title} 87*3ee62d1bS猫头猫 onPress={item.onPress}></ListItem> 88*3ee62d1bS猫头猫 ))} 89bf6e62f2S猫头猫 </Card.Content> 90bf6e62f2S猫头猫 </Card> 91bf6e62f2S猫头猫 <View style={style.bottom}> 92bf6e62f2S猫头猫 <Button 93bf6e62f2S猫头猫 onPress={() => { 94bf6e62f2S猫头猫 MusicQueue.stop(); 95bf6e62f2S猫头猫 BackHandler.exitApp(); 96bf6e62f2S猫头猫 }}> 97bf6e62f2S猫头猫 退出 98bf6e62f2S猫头猫 </Button> 99bf6e62f2S猫头猫 </View> 100bf6e62f2S猫头猫 </DrawerContentScrollView> 10165fc5a50S猫头猫 </> 102bf6e62f2S猫头猫 ); 103bf6e62f2S猫头猫} 104bf6e62f2S猫头猫 105bf6e62f2S猫头猫const style = StyleSheet.create({ 106bf6e62f2S猫头猫 wrapper: { 107bf6e62f2S猫头猫 flex: 1, 108bf6e62f2S猫头猫 backgroundColor: '#999999', 109bf6e62f2S猫头猫 }, 110bf6e62f2S猫头猫 scrollWrapper: { 111bf6e62f2S猫头猫 paddingHorizontal: rpx(24), 112bf6e62f2S猫头猫 paddingTop: rpx(12), 113bf6e62f2S猫头猫 }, 114bf6e62f2S猫头猫 115bf6e62f2S猫头猫 header: { 116bf6e62f2S猫头猫 height: rpx(100), 117bf6e62f2S猫头猫 width: '100%', 118bf6e62f2S猫头猫 flexDirection: 'row', 119bf6e62f2S猫头猫 justifyContent: 'space-between', 120bf6e62f2S猫头猫 alignItems: 'center', 121bf6e62f2S猫头猫 }, 122bf6e62f2S猫头猫 title: { 123bf6e62f2S猫头猫 fontSize: fontSizeConst.bigger, 124bf6e62f2S猫头猫 includeFontPadding: false, 1258b51f01aS猫头猫 fontWeight: fontWeightConst.bold, 126bf6e62f2S猫头猫 }, 127bf6e62f2S猫头猫 cardTitle: { 128bf6e62f2S猫头猫 fontSize: fontSizeConst.small, 129bf6e62f2S猫头猫 }, 130bf6e62f2S猫头猫 card: { 131bf6e62f2S猫头猫 backgroundColor: '#eeeeee22', 132bf6e62f2S猫头猫 }, 133bf6e62f2S猫头猫 bottom: { 134bf6e62f2S猫头猫 height: rpx(100), 135bf6e62f2S猫头猫 flexDirection: 'row', 136bf6e62f2S猫头猫 alignItems: 'center', 137bf6e62f2S猫头猫 justifyContent: 'flex-end', 138bf6e62f2S猫头猫 }, 139bf6e62f2S猫头猫}); 140