import React, {memo} from 'react'; import {StyleSheet, View} from 'react-native'; import rpx from '@/utils/rpx'; import {DrawerContentScrollView} from '@react-navigation/drawer'; import ListItem from '@/components/base/listItem'; import {ROUTE_PATH, useNavigate} from '@/entry/router'; import ThemeText from '@/components/base/themeText'; import PageBackground from '@/components/base/pageBackground'; import DeviceInfo from 'react-native-device-info'; import NativeUtils from '@/native/utils'; import MusicQueue from '@/core/musicQueue'; import {useTimingClose} from '@/utils/timingClose'; import timeformat from '@/utils/timeformat'; import {showPanel} from '@/components/panels/usePanel'; import Divider from '@/components/base/divider'; const ITEM_HEIGHT = rpx(108); function HomeDrawer(props: any) { const navigate = useNavigate(); function navigateToSetting(settingType: string) { navigate(ROUTE_PATH.SETTING, { type: settingType, }); } const basicSetting = [ { icon: 'cog-outline', title: '基本设置', onPress: () => { navigateToSetting('basic'); }, }, { icon: 'language-javascript', title: '插件设置', onPress: () => { navigateToSetting('plugin'); }, }, { icon: 'tshirt-v-outline', title: '主题设置', onPress: () => { navigateToSetting('theme'); }, }, ] as const; const otherSetting = [ { icon: 'backup-restore', title: '备份与恢复', onPress: () => { navigateToSetting('backup'); }, }, { icon: 'information-outline', title: '关于', onPress: () => { navigateToSetting('about'); }, }, ] as const; return ( <> {DeviceInfo.getApplicationName()} {/* */} 设置 {basicSetting.map(item => ( ))} 其他 {otherSetting.map(item => ( ))} { await MusicQueue.reset(); NativeUtils.exitApp(); }}> ); } export default memo(HomeDrawer, () => true); const style = StyleSheet.create({ wrapper: { flex: 1, backgroundColor: '#999999', }, scrollWrapper: { paddingTop: rpx(12), }, header: { height: rpx(120), width: '100%', flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center', marginLeft: rpx(24), }, card: { marginBottom: rpx(24), }, cardContent: { paddingHorizontal: 0, }, /** 倒计时 */ countDownText: { height: ITEM_HEIGHT, textAlignVertical: 'center', }, }); function _CountDownItem() { const countDown = useTimingClose(); return ( { showPanel('TimingClose'); }}> {countDown ? timeformat(countDown) : ''} ); } const CountDownItem = memo(_CountDownItem, () => true);