1import React from 'react'; 2import {useNavigation} from '@react-navigation/native'; 3import MusicSheet from '@/core/musicSheet'; 4import {ROUTE_PATH, useParams} from '@/entry/router'; 5import Toast from '@/utils/toast'; 6import {showDialog} from '@/components/dialogs/useDialog'; 7import AppBar from '@/components/base/appBar'; 8 9export default function () { 10 const navigation = useNavigation<any>(); 11 const {id = 'favorite'} = useParams<'local-sheet-detail'>(); 12 const musicSheet = MusicSheet.useSheets(id); 13 14 return ( 15 <> 16 <AppBar 17 menu={[ 18 { 19 icon: 'trash-can-outline', 20 title: '删除歌单', 21 show: id !== 'favorite', 22 onPress() { 23 showDialog('SimpleDialog', { 24 title: '删除歌单', 25 content: `确定删除歌单「${musicSheet.title}」吗?`, 26 onOk: async () => { 27 await MusicSheet.removeSheet(id); 28 Toast.success('已删除'); 29 navigation.goBack(); 30 }, 31 }); 32 }, 33 }, 34 { 35 icon: 'playlist-edit', 36 title: '批量编辑', 37 onPress() { 38 navigation.navigate(ROUTE_PATH.MUSIC_LIST_EDITOR, { 39 musicList: musicSheet.musicList, 40 musicSheet: musicSheet, 41 }); 42 }, 43 }, 44 { 45 icon: 'square-edit-outline', 46 title: '编辑歌单信息', 47 onPress() { 48 showDialog('EditSheetDetailDialog', { 49 musicSheet: musicSheet, 50 }); 51 }, 52 }, 53 { 54 icon: 'sort', 55 title: '排序', 56 onPress() { 57 showDialog('RadioDialog', { 58 content: [ 59 { 60 value: 'random', 61 key: '随机顺序', 62 }, 63 { 64 value: 'a2z', 65 key: '歌曲名A-Z', 66 }, 67 { 68 value: 'z2a', 69 key: '歌曲名Z-A', 70 }, 71 { 72 value: 'arta2z', 73 key: '作者名A-Z', 74 }, 75 { 76 value: 'artz2a', 77 key: '作者名Z-A', 78 }, 79 ], 80 title: '排序', 81 async onOk(value) { 82 MusicSheet.sortMusicList( 83 value as any, 84 musicSheet, 85 ); 86 }, 87 }); 88 }, 89 }, 90 ]} 91 actions={[ 92 { 93 icon: 'magnify', 94 onPress() { 95 navigation.navigate(ROUTE_PATH.SEARCH_MUSIC_LIST, { 96 musicList: musicSheet?.musicList, 97 musicSheet: musicSheet, 98 }); 99 }, 100 }, 101 ]}> 102 歌单 103 </AppBar> 104 </> 105 ); 106} 107