xref: /MusicFree/src/pages/home/components/drawer/index.tsx (revision 65fc5a50efa14abe14c2160e94fda6c7c75cab48)
1bf6e62f2S猫头猫import React from 'react';
2bf6e62f2S猫头猫import {
3bf6e62f2S猫头猫  BackHandler,
4bf6e62f2S猫头猫  ImageBackground,
5bf6e62f2S猫头猫  StyleSheet,
6bf6e62f2S猫头猫  Text,
7bf6e62f2S猫头猫  View,
8bf6e62f2S猫头猫} from 'react-native';
9bf6e62f2S猫头猫import rpx from '@/utils/rpx';
10bf6e62f2S猫头猫import {DrawerContentScrollView} from '@react-navigation/drawer';
11bf6e62f2S猫头猫import {Button, Card, IconButton} from 'react-native-paper';
12bf6e62f2S猫头猫import MusicQueue from '@/common/musicQueue';
13bf6e62f2S猫头猫import ListItem from '@/components/listItem';
14bf6e62f2S猫头猫import {useNavigation} from '@react-navigation/native';
15bf6e62f2S猫头猫import {ROUTE_PATH} from '@/entry/router';
16bf6e62f2S猫头猫import {fontSizeConst, fontWeightConst} from '@/constants/uiConst';
17bf6e62f2S猫头猫import ThemeText from '@/components/themeText';
18*65fc5a50S猫头猫import PageBackground from '@/components/pageBackground';
19bf6e62f2S猫头猫
20bf6e62f2S猫头猫interface IDrawerProps {}
21bf6e62f2S猫头猫
22bf6e62f2S猫头猫export default function HomeDrawer(props: IDrawerProps) {
23bf6e62f2S猫头猫  const navigation = useNavigation<any>();
24bf6e62f2S猫头猫  function navigateToSetting(settingType: string) {
25bf6e62f2S猫头猫    navigation.navigate(ROUTE_PATH.SETTING, {
26bf6e62f2S猫头猫      type: settingType,
27bf6e62f2S猫头猫    });
28bf6e62f2S猫头猫  }
29bf6e62f2S猫头猫  return (
30*65fc5a50S猫头猫    <>
31*65fc5a50S猫头猫      <PageBackground></PageBackground>
32bf6e62f2S猫头猫      <DrawerContentScrollView {...props} style={style.scrollWrapper}>
33bf6e62f2S猫头猫        <View style={style.header}>
34bf6e62f2S猫头猫          <ThemeText style={style.title}>Music Free</ThemeText>
358b51f01aS猫头猫          <IconButton icon={'qrcode-scan'} size={rpx(36)}></IconButton>
36bf6e62f2S猫头猫        </View>
37bf6e62f2S猫头猫        <Card style={style.card}>
38bf6e62f2S猫头猫          <Card.Title
398b51f01aS猫头猫            title={
408b51f01aS猫头猫              <ThemeText style={style.cardTitle}>设置</ThemeText>
418b51f01aS猫头猫            }></Card.Title>
42bf6e62f2S猫头猫          <Card.Content>
43bf6e62f2S猫头猫            <ListItem
44bf6e62f2S猫头猫              icon="cog-outline"
45bf6e62f2S猫头猫              title="基本设置"
46bf6e62f2S猫头猫              onPress={() => {
47bf6e62f2S猫头猫                navigateToSetting('basic');
48bf6e62f2S猫头猫              }}></ListItem>
49bf6e62f2S猫头猫            <ListItem
50bf6e62f2S猫头猫              icon="language-javascript"
51bf6e62f2S猫头猫              title="插件设置"
52bf6e62f2S猫头猫              onPress={() => {
53bf6e62f2S猫头猫                navigateToSetting('plugin');
54bf6e62f2S猫头猫              }}></ListItem>
558b51f01aS猫头猫            <ListItem
568b51f01aS猫头猫              icon="tshirt-v-outline"
578b51f01aS猫头猫              title="主题设置"
588b51f01aS猫头猫              onPress={() => {
598b51f01aS猫头猫                navigateToSetting('theme');
608b51f01aS猫头猫              }}></ListItem>
61bf6e62f2S猫头猫            <ListItem icon="backup-restore" title="备份与恢复"></ListItem>
62bf6e62f2S猫头猫          </Card.Content>
63bf6e62f2S猫头猫        </Card>
64bf6e62f2S猫头猫        <View style={style.bottom}>
65bf6e62f2S猫头猫          <Button
66bf6e62f2S猫头猫            onPress={() => {
67bf6e62f2S猫头猫              MusicQueue.stop();
68bf6e62f2S猫头猫              BackHandler.exitApp();
69bf6e62f2S猫头猫            }}>
70bf6e62f2S猫头猫            退出
71bf6e62f2S猫头猫          </Button>
72bf6e62f2S猫头猫        </View>
73bf6e62f2S猫头猫      </DrawerContentScrollView>
74*65fc5a50S猫头猫    </>
75bf6e62f2S猫头猫  );
76bf6e62f2S猫头猫}
77bf6e62f2S猫头猫
78bf6e62f2S猫头猫const style = StyleSheet.create({
79bf6e62f2S猫头猫  wrapper: {
80bf6e62f2S猫头猫    flex: 1,
81bf6e62f2S猫头猫    backgroundColor: '#999999',
82bf6e62f2S猫头猫  },
83bf6e62f2S猫头猫  scrollWrapper: {
84bf6e62f2S猫头猫    paddingHorizontal: rpx(24),
85bf6e62f2S猫头猫    paddingTop: rpx(12),
86bf6e62f2S猫头猫  },
87bf6e62f2S猫头猫
88bf6e62f2S猫头猫  header: {
89bf6e62f2S猫头猫    height: rpx(100),
90bf6e62f2S猫头猫    width: '100%',
91bf6e62f2S猫头猫    flexDirection: 'row',
92bf6e62f2S猫头猫    justifyContent: 'space-between',
93bf6e62f2S猫头猫    alignItems: 'center',
94bf6e62f2S猫头猫  },
95bf6e62f2S猫头猫  title: {
96bf6e62f2S猫头猫    fontSize: fontSizeConst.bigger,
97bf6e62f2S猫头猫    includeFontPadding: false,
988b51f01aS猫头猫    fontWeight: fontWeightConst.bold,
99bf6e62f2S猫头猫  },
100bf6e62f2S猫头猫  cardTitle: {
101bf6e62f2S猫头猫    fontSize: fontSizeConst.small,
102bf6e62f2S猫头猫  },
103bf6e62f2S猫头猫  card: {
104bf6e62f2S猫头猫    backgroundColor: '#eeeeee22',
105bf6e62f2S猫头猫  },
106bf6e62f2S猫头猫  bottom: {
107bf6e62f2S猫头猫    height: rpx(100),
108bf6e62f2S猫头猫    flexDirection: 'row',
109bf6e62f2S猫头猫    alignItems: 'center',
110bf6e62f2S猫头猫    justifyContent: 'flex-end',
111bf6e62f2S猫头猫  },
112bf6e62f2S猫头猫});
113