From 850a4292437ed2685b2ce3e02ce943e00d2907e1 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sat, 14 Jan 2023 16:03:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=E9=80=BB?= =?UTF-8?q?=E8=BE=91=EF=BC=8C=E4=BF=AE=E5=A4=8D=E6=BD=9C=E5=9C=A8=E6=92=AD?= =?UTF-8?q?=E6=94=BE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- publish/changeLog.md | 2 +- src/common/theme/utils.js | 2 +- .../utils/lyric-font-player/font-player.js | 2 +- src/common/utils/migrateSetting.ts | 2 +- src/common/utils/renderer.ts | 2 +- src/main/modules/sync/server/utils.ts | 2 +- src/main/modules/userApi/main.ts | 2 +- src/main/modules/userApi/utils.ts | 2 +- src/main/modules/winMain/main.ts | 2 +- src/main/utils/index.ts | 4 +- .../worker/dbService/modules/list/index.ts | 10 +- .../layout/LyricHorizontal/useLyric.js | 4 +- .../layout/LyricVertical/useLyric.js | 4 +- .../components/common/ProgressBar.vue | 2 +- .../PlayDetail/components/LyricMenu.vue | 14 +- .../components/layout/Toolbar/SearchInput.vue | 6 +- .../components/material/OnlineList/useList.ts | 8 +- src/renderer/core/player/action.ts | 24 +- src/renderer/core/player/timeoutStop.ts | 4 +- .../core/useApp/usePlayer/useMediaDevice.ts | 4 +- .../core/useApp/usePlayer/usePlayProgress.ts | 4 +- .../core/useApp/usePlayer/usePlayStatus.ts | 6 +- src/renderer/main.ts | 2 +- .../list/listManage/rendererListManage.ts | 4 +- src/renderer/utils/compositions/useKeyDown.ts | 2 +- src/renderer/utils/compositions/useLyric.js | 6 +- src/renderer/utils/data.ts | 10 +- src/renderer/utils/index.ts | 2 +- src/renderer/views/Download/useList.js | 8 +- .../List/MusicList/components/SearchList.vue | 4 +- src/renderer/views/List/MusicList/useList.js | 8 +- .../views/List/MyList/components/Menu.vue | 259 ------------------ src/renderer/views/Search/index.vue | 4 +- .../views/Setting/components/SettingBasic.vue | 4 +- src/renderer/worker/main/list.ts | 2 +- 35 files changed, 85 insertions(+), 342 deletions(-) delete mode 100644 src/renderer/views/List/MyList/components/Menu.vue diff --git a/publish/changeLog.md b/publish/changeLog.md index 11b32226..c46f9f1a 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -3,7 +3,7 @@ - 修复备份文件导入指引无法识别v2配置的问题 - 修复从搜索界面进入歌单详情后,若启用强迫症设置的清空功能会导致意外清空搜索框、搜索列表的问题 -- 就放桌面歌词在启用卡拉OK歌词后字体边缘可能被截断的问题 +- 修复桌面歌词在启用卡拉OK歌词后字体边缘可能被截断的问题(特别是纵向歌词某些字的边角被截断导致后面的阴影露出来或阴影不均匀的问题) - 修复桌面歌词启用歌词缩放后的阴影显示问题 - 修复Linux armv7l系统(如树莓派)下无法启动的问题(与修复Linux arm64的方法一样采用内置预编译模块的方式修复) - 修复备份与恢复的列表导入列表信息设置逻辑问题与潜在导入问题 diff --git a/src/common/theme/utils.js b/src/common/theme/utils.js index 8537a5b3..1cb9db65 100644 --- a/src/common/theme/utils.js +++ b/src/common/theme/utils.js @@ -36,7 +36,7 @@ exports.createThemeColors = (rgbaColor, fontRgbaColor, isDark) => { const createFontColors = (rgbaColor, isDark) => { // rgb(238, 238, 238) // let prec = 'rgb(255, 255, 255)' - if (rgbaColor == null) rgbaColor = isDark ? 'rgb(229, 229, 229)' : 'rgb(33, 33, 33)' + rgbaColor ??= isDark ? 'rgb(229, 229, 229)' : 'rgb(33, 33, 33)' if (isDark) return createFontDarkColors(rgbaColor) let colors = { diff --git a/src/common/utils/lyric-font-player/font-player.js b/src/common/utils/lyric-font-player/font-player.js index 98553ea5..6b9841ab 100644 --- a/src/common/utils/lyric-font-player/font-player.js +++ b/src/common/utils/lyric-font-player/font-player.js @@ -141,7 +141,7 @@ module.exports = class FontPlayer { // lineText += text if (this.shadowContent) { - if (!lrcShadowContent) lrcShadowContent = document.createElement('div') + lrcShadowContent ??= document.createElement('div') const shadowDom = document.createElement('span') shadowDom.textContent = text lrcShadowContent.appendChild(shadowDom) diff --git a/src/common/utils/migrateSetting.ts b/src/common/utils/migrateSetting.ts index 9b41471c..0210a83d 100644 --- a/src/common/utils/migrateSetting.ts +++ b/src/common/utils/migrateSetting.ts @@ -25,7 +25,7 @@ export default (setting: any): Partial => { // 迁移列表滚动位置设置 ~0.18.3 if (setting.list?.scroll) { let scroll = setting.list.scroll - if (setting.list.isSaveScrollLocation) setting.list.isSaveScrollLocation = scroll.enable + setting.list.isSaveScrollLocation &&= scroll.enable delete setting.list.scroll } diff --git a/src/common/utils/renderer.ts b/src/common/utils/renderer.ts index 17029edb..6a205cce 100644 --- a/src/common/utils/renderer.ts +++ b/src/common/utils/renderer.ts @@ -244,7 +244,7 @@ export const scrollXRTo = (element: HTMLElement, to: number, duration = 300, fn */ let dom_title = document.getElementsByTagName('title')[0] export const setTitle = (title: string | null) => { - if (!title) title = '洛雪音乐助手' + title ||= '洛雪音乐助手' dom_title.innerText = title } diff --git a/src/main/modules/sync/server/utils.ts b/src/main/modules/sync/server/utils.ts index baf051a1..1ebf63bf 100644 --- a/src/main/modules/sync/server/utils.ts +++ b/src/main/modules/sync/server/utils.ts @@ -44,7 +44,7 @@ export const createClientKeyInfo = (deviceName: string): LX.Sync.KeyInfo => { deviceName, } const store = getStore(STORE_NAME) - if (!keyInfos) keyInfos = store.get('keys') as KeyInfos || {} + keyInfos ??= store.get('keys') as KeyInfos || {} if (Object.keys(keyInfos).length > 101) throw new Error('max keys') keyInfos[keyInfo.clientId] = keyInfo diff --git a/src/main/modules/userApi/main.ts b/src/main/modules/userApi/main.ts index 0fcd32a8..556f50ff 100644 --- a/src/main/modules/userApi/main.ts +++ b/src/main/modules/userApi/main.ts @@ -27,7 +27,7 @@ const winEvent = () => { export const createWindow = async(userApi: LX.UserApi.UserApiInfo) => { await closeWindow() - if (!dir) dir = global.isDev ? webpackUserApiPath : join(encodePath(__dirname), 'userApi') + dir ??= global.isDev ? webpackUserApiPath : join(encodePath(__dirname), 'userApi') if (!html) { html = await fs.promises.readFile(join(dir, 'renderer/user-api.html'), 'utf8') diff --git a/src/main/modules/userApi/utils.ts b/src/main/modules/userApi/utils.ts index c07af513..eea3a858 100644 --- a/src/main/modules/userApi/utils.ts +++ b/src/main/modules/userApi/utils.ts @@ -33,7 +33,7 @@ export const importApi = (script: string): LX.UserApi.UserApiInfo => { script, allowShowUpdateAlert: true, } - if (!userApis) userApis = [] + userApis ??= [] userApis.push(apiInfo) getStore(STORE_NAMES.USER_API).set('userApis', userApis) return apiInfo diff --git a/src/main/modules/winMain/main.ts b/src/main/modules/winMain/main.ts index 45647227..affe26b3 100644 --- a/src/main/modules/winMain/main.ts +++ b/src/main/modules/winMain/main.ts @@ -20,7 +20,7 @@ const winEvent = () => { return } - if (global.lx.isTrafficLightClose) global.lx.isTrafficLightClose = false + global.lx.isTrafficLightClose &&= false event.preventDefault() browserWindow!.hide() }) diff --git a/src/main/utils/index.ts b/src/main/utils/index.ts index 2bc80a80..96433816 100644 --- a/src/main/utils/index.ts +++ b/src/main/utils/index.ts @@ -113,7 +113,7 @@ export const updateSetting = (setting?: Partial, isInit: boolean let originSetting: LX.AppSetting if (isInit) { - if (setting) setting = migrateSetting(setting) + setting &&= migrateSetting(setting) originSetting = { ...defaultSetting } } else originSetting = global.lx.appSetting @@ -196,7 +196,7 @@ export const openDevTools = (webContents: Electron.WebContents) => { let userThemes: LX.Theme[] export const getAllThemes = () => { - if (!userThemes) userThemes = getStore(STORE_NAMES.THEME).get('themes') as LX.Theme[] | null ?? [] + userThemes ??= getStore(STORE_NAMES.THEME).get('themes') as (LX.Theme[] | null) ?? [] return { themes, userThemes, diff --git a/src/main/worker/dbService/modules/list/index.ts b/src/main/worker/dbService/modules/list/index.ts index 0e1afe29..7aab20ef 100644 --- a/src/main/worker/dbService/modules/list/index.ts +++ b/src/main/worker/dbService/modules/list/index.ts @@ -39,7 +39,7 @@ const toDBMusicInfo = (musicInfos: LX.Music.MusicInfo[], listId: string, offset: * @returns */ export const getAllUserList = (): LX.List.UserListInfo[] => { - if (userLists == null) userLists = queryAllUserList() + userLists ??= queryAllUserList() return userLists.map(list => { const { position, ...newList } = list @@ -53,7 +53,7 @@ export const getAllUserList = (): LX.List.UserListInfo[] => { * @param lists 列表信息 */ export const createUserLists = (position: number, lists: LX.List.UserListInfo[]) => { - if (userLists == null) userLists = queryAllUserList() + userLists ??= queryAllUserList() if (position < 0 || position >= userLists.length) { const newLists: LX.DBService.UserListInfo[] = lists.map((list, index) => { return { @@ -96,7 +96,7 @@ export const setUserLists = (lists: LX.List.UserListInfo[]) => { */ export const removeUserLists = (ids: string[]) => { deleteUserLists(ids) - if (userLists) userLists = queryAllUserList() + userLists &&= queryAllUserList() } /** @@ -117,7 +117,7 @@ export const updateUserLists = (lists: LX.List.UserListInfo[]) => { } }).filter(Boolean) as LX.DBService.UserListInfo[] updateUserListsFromDB(dbList) - if (userLists) userLists = queryAllUserList() + userLists &&= queryAllUserList() } /** @@ -126,7 +126,7 @@ export const updateUserLists = (lists: LX.List.UserListInfo[]) => { * @param ids 列表ids */ export const updateUserListsPosition = (position: number, ids: string[]) => { - if (userLists == null) userLists = queryAllUserList() + userLists ??= queryAllUserList() const newUserLists = [...userLists] diff --git a/src/renderer-lyric/components/layout/LyricHorizontal/useLyric.js b/src/renderer-lyric/components/layout/LyricHorizontal/useLyric.js index 8553e6db..37bef6dd 100644 --- a/src/renderer-lyric/components/layout/LyricHorizontal/useLyric.js +++ b/src/renderer-lyric/components/layout/LyricHorizontal/useLyric.js @@ -91,7 +91,7 @@ export default () => { const handleMove = (x, y) => { if (isMsDown.value) { - if (!isStopScroll) isStopScroll = true + isStopScroll ||= true if (cancelScrollFn) { cancelScrollFn() cancelScrollFn = null @@ -164,7 +164,7 @@ export default () => { const scrollLine = (line, oldLine) => { if (line < 0 || !lyric.lines.length) return if (line == 0 && isSetedLines) return isSetedLines = false - if (isSetedLines) isSetedLines = false + isSetedLines &&= false if (oldLine == null || line - oldLine != 1) return handleScrollLrc() if (setting['desktopLyric.isDelayScroll']) { diff --git a/src/renderer-lyric/components/layout/LyricVertical/useLyric.js b/src/renderer-lyric/components/layout/LyricVertical/useLyric.js index c5f64134..519daedc 100644 --- a/src/renderer-lyric/components/layout/LyricVertical/useLyric.js +++ b/src/renderer-lyric/components/layout/LyricVertical/useLyric.js @@ -91,7 +91,7 @@ export default () => { const handleMove = (x, y) => { if (isMsDown.value) { - if (!isStopScroll) isStopScroll = true + isStopScroll ||= true if (cancelScrollFn) { cancelScrollFn() cancelScrollFn = null @@ -164,7 +164,7 @@ export default () => { const scrollLine = (line, oldLine) => { if (line < 0) return if (line == 0 && isSetedLines) return isSetedLines = false - if (isSetedLines) isSetedLines = false + isSetedLines &&= false if (oldLine == null || line - oldLine != 1) return handleScrollLrc() if (setting['desktopLyric.isDelayScroll']) { diff --git a/src/renderer/components/common/ProgressBar.vue b/src/renderer/components/common/ProgressBar.vue index f3ac5ba8..831558b6 100644 --- a/src/renderer/components/common/ProgressBar.vue +++ b/src/renderer/components/common/ProgressBar.vue @@ -56,7 +56,7 @@ export default { } const handleMsMove = event => { if (!msEvent.isMsDown) return - if (!dragging.value) dragging.value = true + dragging.value ||= true let progress = msEvent.msDownProgress + (event.clientX - msEvent.msDownX) / dom_progress.value.clientWidth if (progress > 1) progress = 1 diff --git a/src/renderer/components/layout/PlayDetail/components/LyricMenu.vue b/src/renderer/components/layout/PlayDetail/components/LyricMenu.vue index 7659d038..ed46890e 100644 --- a/src/renderer/components/layout/PlayDetail/components/LyricMenu.vue +++ b/src/renderer/components/layout/PlayDetail/components/LyricMenu.vue @@ -125,14 +125,14 @@ export default { let lxlyric = props.lyricInfo.lxlyric if (offsetTagRxp.test(lyric)) { lyric = lyric.replace(offsetTagAllRxp, `$1[offset:${offset}]`) - if (tlyric) tlyric = tlyric.replace(offsetTagAllRxp, `$1[offset:${offset}]`) - if (lxlyric) lxlyric = lxlyric.replace(offsetTagAllRxp, `$1[offset:${offset}]`) - if (rlyric) rlyric = rlyric.replace(offsetTagAllRxp, `$1[offset:${offset}]`) + tlyric &&= tlyric.replace(offsetTagAllRxp, `$1[offset:${offset}]`) + lxlyric &&= lxlyric.replace(offsetTagAllRxp, `$1[offset:${offset}]`) + rlyric &&= rlyric.replace(offsetTagAllRxp, `$1[offset:${offset}]`) } else { - lyric = `[offset:${offset}]\n` + lyric - if (tlyric) tlyric = `[offset:${offset}]\n` + tlyric - if (lxlyric) lxlyric = `[offset:${offset}]\n` + lxlyric - if (rlyric) rlyric = `[offset:${offset}]\n` + rlyric + lyric &&= `[offset:${offset}]\n` + lyric + tlyric &&= `[offset:${offset}]\n` + tlyric + lxlyric &&= `[offset:${offset}]\n` + lxlyric + rlyric &&= `[offset:${offset}]\n` + rlyric } const musicInfo = 'progress' in props.lyricInfo.musicInfo ? props.lyricInfo.musicInfo.meta.musicInfo : props.lyricInfo.musicInfo diff --git a/src/renderer/components/layout/Toolbar/SearchInput.vue b/src/renderer/components/layout/Toolbar/SearchInput.vue index b9a94453..24da7200 100644 --- a/src/renderer/components/layout/Toolbar/SearchInput.vue +++ b/src/renderer/components/layout/Toolbar/SearchInput.vue @@ -64,7 +64,7 @@ export default { } const handleSearch = () => { - if (visibleList.value) visibleList.value = false + visibleList.value &&= false if (!searchText.value && route.path != '/search') { setSearchText('') return @@ -83,13 +83,13 @@ export default { switch (action) { case 'focus': isFocused = true - if (!visibleList.value) visibleList.value = true + visibleList.value ||= true if (searchText.value) handleTipSearch() break case 'blur': isFocused = false setTimeout(() => { - if (visibleList.value) visibleList.value = false + visibleList.value &&= false }, 50) break case 'submit': diff --git a/src/renderer/components/material/OnlineList/useList.ts b/src/renderer/components/material/OnlineList/useList.ts index c206876d..79b139d5 100644 --- a/src/renderer/components/material/OnlineList/useList.ts +++ b/src/renderer/components/material/OnlineList/useList.ts @@ -12,16 +12,16 @@ const useKeyEvent = ({ handleSelectAllData }: { } const handle_key_shift_down = () => { - if (!keyEvent.isShiftDown) keyEvent.isShiftDown = true + keyEvent.isShiftDown ||= true } const handle_key_shift_up = () => { - if (keyEvent.isShiftDown) keyEvent.isShiftDown = false + keyEvent.isShiftDown &&= false } const handle_key_mod_down = () => { - if (!keyEvent.isModDown) keyEvent.isModDown = true + keyEvent.isModDown ||= true } const handle_key_mod_up = () => { - if (keyEvent.isModDown) keyEvent.isModDown = false + keyEvent.isModDown &&= false } const handle_key_mod_a_down = ({ event }: LX.KeyDownEevent) => { if (!event || (event.target as HTMLElement).tagName == 'INPUT') return diff --git a/src/renderer/core/player/action.ts b/src/renderer/core/player/action.ts index 7fef31b8..5e65d90d 100644 --- a/src/renderer/core/player/action.ts +++ b/src/renderer/core/player/action.ts @@ -19,7 +19,7 @@ import { requestMsg } from '@renderer/utils/message' import { getRandom } from '@renderer/utils/index' // import { checkMusicFileAvailable } from '@renderer/utils/music' -let isGettingUrl = false +let gettingUrlId = '' const createDelayNextTimeout = (delay: number) => { let timeout: NodeJS.Timeout | null const clearDelayNextTimeout = () => { @@ -86,7 +86,7 @@ const getMusicPlayUrl = async(musicInfo: LX.Music.MusicInfo | LX.Download.ListIt export const setMusicUrl = (musicInfo: LX.Music.MusicInfo | LX.Download.ListItem, isRefresh?: boolean) => { if (appSetting['player.autoSkipOnError']) addLoadTimeout() - isGettingUrl = true + gettingUrlId = musicInfo.id void getMusicPlayUrl(musicInfo, isRefresh).then((url) => { if (!url) return setResource(url) @@ -96,8 +96,10 @@ export const setMusicUrl = (musicInfo: LX.Music.MusicInfo | LX.Download.ListItem window.app_event.error() if (appSetting['player.autoSkipOnError']) addDelayNextTimeout() }).finally(() => { - clearLoadTimeout() - if (musicInfo === playMusicInfo.musicInfo) isGettingUrl = false + if (musicInfo === playMusicInfo.musicInfo) { + gettingUrlId = '' + clearLoadTimeout() + } }) } @@ -139,14 +141,17 @@ const handleRestorePlay = async(restorePlayInfo: LX.Player.SavedPlayInfo) => { // 处理音乐播放 const handlePlay = () => { - if (window.lx.isPlayedStop) window.lx.isPlayedStop = false - if (isGettingUrl) isGettingUrl = false + window.lx.isPlayedStop &&= false if (window.lx.restorePlayInfo) { void handleRestorePlay(window.lx.restorePlayInfo) window.lx.restorePlayInfo = null return } + const musicInfo = playMusicInfo.musicInfo + + if (!musicInfo || gettingUrlId == musicInfo.id) return + gettingUrlId &&= '' setStop() window.app_event.pause() @@ -154,9 +159,6 @@ const handlePlay = () => { clearDelayNextTimeout() clearLoadTimeout() - const musicInfo = playMusicInfo.musicInfo - - if (!musicInfo) return if (appSetting['player.togglePlayMethod'] == 'random' && playMusicInfo.listId) addPlayedList({ ...(playMusicInfo as LX.Player.PlayMusicInfo) }) @@ -414,7 +416,7 @@ export const playPrev = async(isAutoToggle = false): Promise => { export const play = () => { if (playMusicInfo.musicInfo == null) return if (isEmpty()) { - setMusicUrl(playMusicInfo.musicInfo) + if (playMusicInfo.musicInfo.id != gettingUrlId) setMusicUrl(playMusicInfo.musicInfo) return } setPlay() @@ -441,7 +443,7 @@ export const stop = () => { * 播放、暂停播放切换 */ export const togglePlay = () => { - if (window.lx.isPlayedStop) window.lx.isPlayedStop = false + window.lx.isPlayedStop &&= false if (isPlay.value) { pause() } else { diff --git a/src/renderer/core/player/timeoutStop.ts b/src/renderer/core/player/timeoutStop.ts index 8c22ef46..6ac63c8b 100644 --- a/src/renderer/core/player/timeoutStop.ts +++ b/src/renderer/core/player/timeoutStop.ts @@ -67,12 +67,12 @@ const timeoutTools: { } export const startTimeoutStop = (time: number) => { - if (window.lx.isPlayedStop) window.lx.isPlayedStop = false + window.lx.isPlayedStop &&= false timeoutTools.start(time) } export const stopTimeoutStop = () => { console.warn('stopTimeoutStop') - if (window.lx.isPlayedStop) window.lx.isPlayedStop = false + window.lx.isPlayedStop &&= false timeoutTools.clearTimeout() } diff --git a/src/renderer/core/useApp/usePlayer/useMediaDevice.ts b/src/renderer/core/useApp/usePlayer/useMediaDevice.ts index 1fbe2fc3..8a59bc29 100644 --- a/src/renderer/core/useApp/usePlayer/useMediaDevice.ts +++ b/src/renderer/core/useApp/usePlayer/useMediaDevice.ts @@ -60,9 +60,9 @@ export default () => { let mediaDeviceId = appSetting['player.mediaDeviceId'] const devices = await getDevices() let device = devices.find(device => device.deviceId === mediaDeviceId) - if (!device) device = devices.find(device => device.deviceId === 'default') + device ??= devices.find(device => device.deviceId === 'default') // @ts-expect-error - if (!device) device = { label: '', deviceId: '' } + device ??= { label: '', deviceId: '' } // @ts-expect-error handleDeviceChangeStopPlay(device, mediaDeviceId) diff --git a/src/renderer/core/useApp/usePlayer/usePlayProgress.ts b/src/renderer/core/useApp/usePlayer/usePlayProgress.ts index fe697488..c273f05f 100644 --- a/src/renderer/core/useApp/usePlayer/usePlayProgress.ts +++ b/src/renderer/core/useApp/usePlayer/usePlayProgress.ts @@ -33,7 +33,7 @@ export default () => { if (window.lx.isPlayedStop) return const currentTime = getCurrentTime() - if (!mediaBuffer.playTime) mediaBuffer.playTime = currentTime + mediaBuffer.playTime ||= currentTime let skipTime = currentTime + getRandom(3, 6) if (skipTime > playProgress.maxPlayTime) skipTime = (playProgress.maxPlayTime - currentTime) / 2 if (skipTime - mediaBuffer.playTime < 1 || playProgress.maxPlayTime - skipTime < 1) { @@ -97,7 +97,7 @@ export default () => { } const handleError = () => { - if (!restorePlayTime) restorePlayTime = getCurrentTime() // 记录出错的播放时间 + restorePlayTime ||= getCurrentTime() // 记录出错的播放时间 console.log('handleError') prevProgressStatus = 'error' handleSetTaskBarState(playProgress.progress, prevProgressStatus) diff --git a/src/renderer/core/useApp/usePlayer/usePlayStatus.ts b/src/renderer/core/useApp/usePlayer/usePlayStatus.ts index e1acbaa3..b3dadfe6 100644 --- a/src/renderer/core/useApp/usePlayer/usePlayStatus.ts +++ b/src/renderer/core/useApp/usePlayer/usePlayStatus.ts @@ -32,18 +32,18 @@ export default () => { } const handlePlay = () => { - if (buttons.empty) buttons.empty = false + buttons.empty &&= false buttons.play = true setButtons() } const handlePause = () => { - if (buttons.empty) buttons.empty = false + buttons.empty &&= false buttons.play = false setButtons() } const handleStop = () => { if (playMusicInfo.musicInfo != null) return - if (buttons.collect) buttons.collect = false + buttons.collect &&= false buttons.empty = true setButtons() } diff --git a/src/renderer/main.ts b/src/renderer/main.ts index 114a3862..285b6c03 100644 --- a/src/renderer/main.ts +++ b/src/renderer/main.ts @@ -53,7 +53,7 @@ void getSetting().then(setting => { break } } - if (langId == null) langId = 'en-us' + langId ??= 'en-us' } setting['common.langId'] = langId void updateSetting({ 'common.langId': langId }) diff --git a/src/renderer/store/list/listManage/rendererListManage.ts b/src/renderer/store/list/listManage/rendererListManage.ts index e7aa276c..fea0a5ae 100644 --- a/src/renderer/store/list/listManage/rendererListManage.ts +++ b/src/renderer/store/list/listManage/rendererListManage.ts @@ -191,12 +191,12 @@ export const registerListAction = (appSetting: LX.AppSetting, onListChanged: (li userListsUpdatePosition(position, ids) } const list_music_add = ({ params: { id, musicInfos, addMusicLocationType } }: LX.IpcRendererEventParams) => { - if (!addMusicLocationType) addMusicLocationType = appSetting['list.addMusicLocationType'] + addMusicLocationType ??= appSetting['list.addMusicLocationType'] const updatedListIds = listMusicAdd(id, musicInfos, addMusicLocationType) if (updatedListIds.length) onListChanged(updatedListIds) } const list_music_move = ({ params: { fromId, toId, musicInfos, addMusicLocationType } }: LX.IpcRendererEventParams) => { - if (!addMusicLocationType) addMusicLocationType = appSetting['list.addMusicLocationType'] + addMusicLocationType ??= appSetting['list.addMusicLocationType'] const updatedListIds = listMusicMove(fromId, toId, musicInfos, addMusicLocationType) if (updatedListIds.length) onListChanged(updatedListIds) } diff --git a/src/renderer/utils/compositions/useKeyDown.ts b/src/renderer/utils/compositions/useKeyDown.ts index ee7f1ace..19260a79 100644 --- a/src/renderer/utils/compositions/useKeyDown.ts +++ b/src/renderer/utils/compositions/useKeyDown.ts @@ -21,7 +21,7 @@ export default (name: string) => { } const handle_key_up = () => { - if (keyDown.value) keyDown.value = false + keyDown.value &&= false } onMounted(() => { diff --git a/src/renderer/utils/compositions/useLyric.js b/src/renderer/utils/compositions/useLyric.js index 28a4004c..87de19d3 100644 --- a/src/renderer/utils/compositions/useLyric.js +++ b/src/renderer/utils/compositions/useLyric.js @@ -128,7 +128,7 @@ export default ({ isPlay, lyric, playProgress, isShowLyricProgressSetting, offse } const handleMove = (y) => { if (isMsDown.value) { - if (!isStopScroll.value) isStopScroll.value = true + isStopScroll.value ||= true if (cancelScrollFn) { cancelScrollFn() cancelScrollFn = null @@ -150,7 +150,7 @@ export default ({ isPlay, lyric, playProgress, isShowLyricProgressSetting, offse const handleWheel = (event) => { console.log(event.deltaY) - if (!isStopScroll.value) isStopScroll.value = true + isStopScroll.value ||= true if (cancelScrollFn) { cancelScrollFn() cancelScrollFn = null @@ -197,7 +197,7 @@ export default ({ isPlay, lyric, playProgress, isShowLyricProgressSetting, offse const scrollLine = (line, oldLine) => { if (line < 0) return if (line == 0 && isSetedLines) return isSetedLines = false - if (isSetedLines) isSetedLines = false + isSetedLines &&= false if (oldLine == null || line - oldLine != 1) return handleScrollLrc() delayScrollTimeout = setTimeout(() => { diff --git a/src/renderer/utils/data.ts b/src/renderer/utils/data.ts index a7f5c2dd..c84eb0db 100644 --- a/src/renderer/utils/data.ts +++ b/src/renderer/utils/data.ts @@ -44,7 +44,7 @@ const saveViewPrevStateThrottle = throttle((state) => { }, 1000) const initPosition = async() => { - if (listPosition == null) listPosition = await getListPositionInfoFromData() ?? {} + listPosition ??= await getListPositionInfoFromData() ?? {} } export const getListPosition = async(id: string): Promise => { await initPosition() @@ -74,7 +74,7 @@ const saveListPrevSelectIdThrottle = throttle(() => { saveListPrevSelectIdFromData(listPrevSelectId) }, 200) export const getListPrevSelectId = async() => { - if (listPrevSelectId == null) listPrevSelectId = await getListPrevSelectIdFromData() ?? LIST_IDS.DEFAULT + listPrevSelectId ??= await getListPrevSelectIdFromData() ?? LIST_IDS.DEFAULT return listPrevSelectId ?? LIST_IDS.DEFAULT } export const saveListPrevSelectId = (id: string) => { @@ -138,7 +138,7 @@ export const overwriteListUpdateInfo = async(ids: string[]) => { export const getSearchSetting = async() => { - if (!searchSetting) searchSetting = await getSearchSettingFromData() + searchSetting ??= await getSearchSettingFromData() return { ...searchSetting } } export const setSearchSetting = async(setting: Partial) => { @@ -154,7 +154,7 @@ export const setSearchSetting = async(setting: Partial { - if (!songListSetting) songListSetting = await getSongListSettingFromData() + songListSetting ??= await getSongListSettingFromData() return { ...songListSetting } } export const setSongListSetting = async(setting: Partial) => { @@ -164,7 +164,7 @@ export const setSongListSetting = async(setting: Partial { - if (!leaderboardSetting) leaderboardSetting = await getLeaderboardSettingFromData() + leaderboardSetting ??= await getLeaderboardSettingFromData() return { ...leaderboardSetting } } export const setLeaderboardSetting = async(setting: Partial) => { diff --git a/src/renderer/utils/index.ts b/src/renderer/utils/index.ts index 91bdb641..c438811a 100644 --- a/src/renderer/utils/index.ts +++ b/src/renderer/utils/index.ts @@ -27,7 +27,7 @@ export const dateFormat2 = (time: number): string => { */ let dom_title = document.getElementsByTagName('title')[0] export const setTitle = (title: string | null) => { - if (!title) title = '洛雪音乐助手' + title ||= '洛雪音乐助手' dom_title.innerText = title } diff --git a/src/renderer/views/Download/useList.js b/src/renderer/views/Download/useList.js index feff1e11..f2028a41 100644 --- a/src/renderer/views/Download/useList.js +++ b/src/renderer/views/Download/useList.js @@ -10,16 +10,16 @@ const useKeyEvent = ({ handleSelectAllData }) => { } const handle_key_shift_down = () => { - if (!keyEvent.isShiftDown) keyEvent.isShiftDown = true + keyEvent.isShiftDown ||= true } const handle_key_shift_up = () => { - if (keyEvent.isShiftDown) keyEvent.isShiftDown = false + keyEvent.isShiftDown &&= false } const handle_key_mod_down = () => { - if (!keyEvent.isModDown) keyEvent.isModDown = true + keyEvent.isModDown ||= true } const handle_key_mod_up = () => { - if (keyEvent.isModDown) keyEvent.isModDown = false + keyEvent.isModDown &&= false } const handle_key_mod_a_down = ({ event }) => { if (event.target.tagName == 'INPUT') return diff --git a/src/renderer/views/List/MusicList/components/SearchList.vue b/src/renderer/views/List/MusicList/components/SearchList.vue index b2f643af..3667d85d 100644 --- a/src/renderer/views/List/MusicList/components/SearchList.vue +++ b/src/renderer/views/List/MusicList/components/SearchList.vue @@ -137,10 +137,10 @@ export default { }, handle_key_mod_down() { console.log('handle_key_mod_down') - if (!this.isModDown) this.isModDown = true + this.isModDown ||= true }, handle_key_mod_up() { - if (this.isModDown) this.isModDown = false + this.isModDown &&= false }, handle_key_mod_f_down() { if (this.visible) this.$refs.dom_input.focus() diff --git a/src/renderer/views/List/MusicList/useList.js b/src/renderer/views/List/MusicList/useList.js index e599488e..e24d6d33 100644 --- a/src/renderer/views/List/MusicList/useList.js +++ b/src/renderer/views/List/MusicList/useList.js @@ -10,16 +10,16 @@ const useKeyEvent = ({ handleSelectAllData }) => { } const handle_key_shift_down = () => { - if (!keyEvent.isShiftDown) keyEvent.isShiftDown = true + keyEvent.isShiftDown ||= true } const handle_key_shift_up = () => { - if (keyEvent.isShiftDown) keyEvent.isShiftDown = false + keyEvent.isShiftDown &&= false } const handle_key_mod_down = () => { - if (!keyEvent.isModDown) keyEvent.isModDown = true + keyEvent.isModDown ||= true } const handle_key_mod_up = () => { - if (keyEvent.isModDown) keyEvent.isModDown = false + keyEvent.isModDown &&= false } const handle_key_mod_a_down = ({ event }) => { if (event.target.tagName == 'INPUT') return diff --git a/src/renderer/views/List/MyList/components/Menu.vue b/src/renderer/views/List/MyList/components/Menu.vue deleted file mode 100644 index c63f2758..00000000 --- a/src/renderer/views/List/MyList/components/Menu.vue +++ /dev/null @@ -1,259 +0,0 @@ - diff --git a/src/renderer/views/Search/index.vue b/src/renderer/views/Search/index.vue index 6425881b..c613d51e 100644 --- a/src/renderer/views/Search/index.vue +++ b/src/renderer/views/Search/index.vue @@ -35,8 +35,8 @@ const verifyQueryParams = async(to, from, next) => { if (_source == null || _type == null) { const setting = await getSearchSetting() - if (!_source) _source = setting.source - if (!_type) _type = setting.type + _source ??= setting.source + _type ??= setting.type next({ path: to.path, diff --git a/src/renderer/views/Setting/components/SettingBasic.vue b/src/renderer/views/Setting/components/SettingBasic.vue index 622f5dcd..dfae2a20 100644 --- a/src/renderer/views/Setting/components/SettingBasic.vue +++ b/src/renderer/views/Setting/components/SettingBasic.vue @@ -127,9 +127,9 @@ export default { const autoTheme = reactive({}) const updateAutoTheme = (info) => { let light = findTheme(info, appSetting['theme.lightId']) - if (!light) light = info.themes.find(theme => theme.id == 'green') + light ??= info.themes.find(theme => theme.id == 'green') let dark = findTheme(info, appSetting['theme.darkId']) - if (!dark) dark = info.themes.find(theme => theme.id == 'black') + dark ??= info.themes.find(theme => theme.id == 'black') autoTheme['--color-primary-theme-light'] = light.config.themeColors['--color-theme'] autoTheme['--background-image-theme-light'] = light.isCustom ? light.config.extInfo['--background-image'] == 'none' diff --git a/src/renderer/worker/main/list.ts b/src/renderer/worker/main/list.ts index 955ba101..92f12dc9 100644 --- a/src/renderer/worker/main/list.ts +++ b/src/renderer/worker/main/list.ts @@ -172,7 +172,7 @@ export const filterDuplicateMusic = async(list: LX.Music.MusicInfo[], isFilterVa if (isFilterVariant) { list.forEach((musicInfo, index) => { let musicInfoName = musicInfo.name.toLowerCase().replace(variantRxp, '').replace(variantRxp2, '') - if (!musicInfoName) musicInfoName = musicInfo.name.toLowerCase().replace(/\s+/g, '') + musicInfoName ||= musicInfo.name.toLowerCase().replace(/\s+/g, '') handleFilter(musicInfoName, index, musicInfo) }) } else {