1import React from 'react'; 2import LocalMusicSheet from '@/core/localMusicSheet'; 3import {ROUTE_PATH, useNavigate} from '@/entry/router'; 4import LocalMusicList from './localMusicList'; 5import MusicBar from '@/components/musicBar'; 6import {localMusicSheetId} from '@/constants/commonConst'; 7import Toast from '@/utils/toast'; 8import {showDialog} from '@/components/dialogs/useDialog'; 9import AppBar from '@/components/base/appBar'; 10 11export default function MainPage() { 12 const navigate = useNavigate(); 13 return ( 14 <> 15 <AppBar 16 withStatusBar 17 actions={[ 18 { 19 icon: 'magnify', 20 onPress() { 21 navigate(ROUTE_PATH.SEARCH_MUSIC_LIST, { 22 musicList: LocalMusicSheet.getMusicList(), 23 }); 24 }, 25 }, 26 ]} 27 menu={[ 28 { 29 icon: 'magnify', 30 title: '扫描本地音乐', 31 async onPress() { 32 navigate(ROUTE_PATH.FILE_SELECTOR, { 33 fileType: 'folder', 34 multi: true, 35 actionText: '开始扫描', 36 async onAction(selectedFiles) { 37 return new Promise(resolve => { 38 showDialog('LoadingDialog', { 39 title: '扫描本地音乐', 40 promise: 41 LocalMusicSheet.importLocal( 42 selectedFiles.map( 43 _ => _.path, 44 ), 45 ), 46 onResolve(data, hideDialog) { 47 Toast.success('导入成功~'); 48 hideDialog(); 49 resolve(true); 50 }, 51 onCancel(hideDialog) { 52 LocalMusicSheet.cancelImportLocal(); 53 hideDialog(); 54 resolve(false); 55 }, 56 }); 57 }); 58 }, 59 }); 60 }, 61 }, 62 { 63 icon: 'playlist-edit', 64 title: '批量编辑', 65 async onPress() { 66 navigate(ROUTE_PATH.MUSIC_LIST_EDITOR, { 67 musicList: LocalMusicSheet.getMusicList(), 68 musicSheet: { 69 id: localMusicSheetId, 70 }, 71 }); 72 }, 73 }, 74 { 75 icon: 'download', 76 title: '下载列表', 77 async onPress() { 78 navigate(ROUTE_PATH.DOWNLOADING); 79 }, 80 }, 81 ]}> 82 本地音乐 83 </AppBar> 84 <LocalMusicList /> 85 <MusicBar /> 86 </> 87 ); 88} 89