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