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