v2.0.0
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
import { tempListMeta, userLists } from '@renderer/store/list/state'
|
||||
import { dialog } from '@renderer/plugins/Dialog'
|
||||
import syncSourceList from '@renderer/store/list/syncSourceList'
|
||||
import { getListDetail, getListDetailAll } from '@renderer/store/songList/action'
|
||||
import { createUserList, setTempList } from '@renderer/store/list/action'
|
||||
import { playList } from '@renderer/core/player/action'
|
||||
import { LIST_IDS } from '@common/constants'
|
||||
|
||||
const getListId = (id: string, source: LX.OnlineSource) => `${source}__${id}`
|
||||
|
||||
export const addSongListDetail = async(id: string, source: LX.OnlineSource, name?: string) => {
|
||||
// console.log(this.listDetail.info)
|
||||
// if (!this.listDetail.info.name) return
|
||||
const listId = getListId(id, source)
|
||||
const targetList = userLists.find(l => l.id == listId)
|
||||
if (targetList) {
|
||||
const confirm = await dialog.confirm({
|
||||
message: window.i18n.t('duplicate_list_tip', { name: targetList.name }),
|
||||
cancelButtonText: window.i18n.t('lists__import_part_button_cancel'),
|
||||
confirmButtonText: window.i18n.t('confirm_button_text'),
|
||||
})
|
||||
if (!confirm) return
|
||||
void syncSourceList(targetList)
|
||||
return
|
||||
}
|
||||
|
||||
const list = await getListDetailAll(id, source)
|
||||
await createUserList({
|
||||
name,
|
||||
id: listId,
|
||||
list,
|
||||
source,
|
||||
sourceListId: id,
|
||||
})
|
||||
}
|
||||
|
||||
export const playSongListDetail = async(id: string, source: LX.OnlineSource, list?: LX.Music.MusicInfoOnline[], index: number = 0) => {
|
||||
let isPlayingList = false
|
||||
console.log(list)
|
||||
const listId = getListId(id, source)
|
||||
if (!list?.length) list = (await getListDetail(id, source, 1)).list
|
||||
if (list?.length) {
|
||||
await setTempList(listId, [...list])
|
||||
playList(LIST_IDS.TEMP, index)
|
||||
isPlayingList = true
|
||||
}
|
||||
const fullList = await getListDetailAll(id, source)
|
||||
if (!fullList.length) return
|
||||
if (isPlayingList) {
|
||||
if (tempListMeta.id == listId) {
|
||||
await setTempList(listId, [...fullList])
|
||||
}
|
||||
} else {
|
||||
await setTempList(listId, [...fullList])
|
||||
playList(LIST_IDS.TEMP, index)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user