This commit is contained in:
lyswhut
2022-10-29 11:36:35 +08:00
parent 66b965d9f7
commit e45cee6596
715 changed files with 57096 additions and 31771 deletions
@@ -0,0 +1,57 @@
import { LIST_IDS } from '@common/constants'
import { ref } from '@common/utils/vueTools'
import { playList } from '@renderer/core/player/action'
import { getListMusics, addListMusics } from '@renderer/store/list/action'
import { addHistoryWord } from '@renderer/store/search/action'
// import { useI18n } from '@renderer/plugins/i18n'
// import { } from '@renderer/store/search/state'
import { search as searchMusic, listInfos, ListInfo } from '@renderer/store/search/music'
import { assertApiSupport } from '@renderer/store/utils'
export declare type SearchSource = LX.OnlineSource | 'all'
export default () => {
const listRef = ref<any>(null)
const listInfo = ref<ListInfo>({
page: 1,
maxPage: 0,
limit: 30,
total: 0,
list: [],
key: null,
noItemLabel: '',
})
const search = (text: string, source: SearchSource, page: number) => {
listInfo.value = listInfos[source] as ListInfo
if (text.length) void addHistoryWord(text)
void searchMusic(text, page, source).then((list: LX.Music.MusicInfo[]) => {
if (list.length) {
setTimeout(() => {
if (listRef.value) listRef.value.scrollToTop()
})
}
})
}
const handlePlayList = async(index: number) => {
let targetSong = listInfo.value.list[index]
if (!assertApiSupport(targetSong.source)) return
const defaultListMusics = await getListMusics(LIST_IDS.DEFAULT)
await addListMusics(LIST_IDS.DEFAULT, [targetSong])
let targetIndex = defaultListMusics.findIndex(s => s.id === targetSong.id)
if (targetIndex > -1) playList(LIST_IDS.DEFAULT, targetIndex)
}
return {
listRef,
listInfo,
search,
handlePlayList,
}
}