From a95524ff347949dd5df1ba3a0ef03626a69b2ef4 Mon Sep 17 00:00:00 2001 From: memorydream <34763046+memorydream@users.noreply.github.com> Date: Sun, 10 Apr 2022 23:37:36 +0800 Subject: [PATCH] fix: bugs (#1503) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: 限制FMCard上的歌名长度 避免曲名过长将其他部分顶出卡片外 * fix: Library取词逻辑 * fix: 歌词页面Player UI * fix: 搜索页面专辑发布日期 * fix: 修复私人FM启动时总是加载新的数据,导致数据过多的问题 * update * 更改FM的初始化顺序 * Update player.ts * fix: 将FMCard的歌名长度限制为两行 --- src/renderer/components/FMCard.tsx | 4 +++- src/renderer/components/Lyric/Player.tsx | 24 ++++++++++++++++-------- src/renderer/pages/Library.tsx | 2 +- src/renderer/pages/Search/Search.tsx | 3 ++- src/renderer/utils/player.ts | 22 ++++++++++++---------- 5 files changed, 34 insertions(+), 21 deletions(-) diff --git a/src/renderer/components/FMCard.tsx b/src/renderer/components/FMCard.tsx index 20f481d..d146693 100644 --- a/src/renderer/components/FMCard.tsx +++ b/src/renderer/components/FMCard.tsx @@ -102,7 +102,9 @@ const FMCard = () => { {/* Track info */}
{track ? ( -
{track?.name}
+
+ {track?.name} +
) : (
diff --git a/src/renderer/components/Lyric/Player.tsx b/src/renderer/components/Lyric/Player.tsx index ffc9844..a7ec88f 100644 --- a/src/renderer/components/Lyric/Player.tsx +++ b/src/renderer/components/Lyric/Player.tsx @@ -29,8 +29,11 @@ const PlayingTrack = () => { () => playerSnapshot.trackListSource, [playerSnapshot.trackListSource] ) + + const hasListSource = playerSnapshot.mode !== PlayerMode.FM && trackListSource?.type + const toTrackListSource = () => { - if (!trackListSource?.type) return + if (!hasListSource) return navigate(`/${trackListSource.type}/${trackListSource.id}`) state.uiStates.showLyricPanel = false @@ -40,19 +43,24 @@ const PlayingTrack = () => {
{track?.name}
- - {' '} - -{' '} - - {track?.al.name} + {!!track?.al?.id && ( + + {' '} + -{' '} + + {track?.al.name} + - + )}
) diff --git a/src/renderer/pages/Library.tsx b/src/renderer/pages/Library.tsx index 8e62d44..a5efadd 100644 --- a/src/renderer/pages/Library.tsx +++ b/src/renderer/pages/Library.tsx @@ -40,7 +40,7 @@ const LikedTracksCard = ({ className }: { className?: string }) => { chunk( lyric?.lrc.lyric ?.split('\n') - ?.map(l => l.split(']')[1]?.trim()) + ?.map(l => l.split(']').pop()?.trim()) ?.filter( l => l && diff --git a/src/renderer/pages/Search/Search.tsx b/src/renderer/pages/Search/Search.tsx index 972e8f8..75a8af8 100644 --- a/src/renderer/pages/Search/Search.tsx +++ b/src/renderer/pages/Search/Search.tsx @@ -8,6 +8,7 @@ import Cover from '@/renderer/components/Cover' import TrackGrid from '@/renderer/components/TracksGrid' import { player } from '@/renderer/store' import { resizeImage } from '@/renderer/utils/common' +import dayjs from 'dayjs' const Artists = ({ artists }: { artists: Artist[] }) => { const navigate = useNavigate() @@ -62,7 +63,7 @@ const Albums = ({ albums }: { albums: Album[] }) => { {album.name}
- 专辑 · {album?.artist.name} · 2020 + 专辑 · {album?.artist.name} · {dayjs(album.publishTime).year()}
diff --git a/src/renderer/utils/player.ts b/src/renderer/utils/player.ts index c72ff34..49dcc9b 100644 --- a/src/renderer/utils/player.ts +++ b/src/renderer/utils/player.ts @@ -152,12 +152,13 @@ export class Player { } private async _initFM() { - const response = await fetchPersonalFMWithReactQuery() - this.fmTrackList.push(...(response?.data?.map(r => r.id) ?? [])) + if (this.fmTrackList.length === 0) await this._loadMoreFMTracks() const trackId = this.fmTrackList[0] const track = await this._fetchTrack(trackId) if (track) this.fmTrack = track + + this._loadMoreFMTracks() } private _setupProgressInterval() { @@ -255,12 +256,6 @@ export class Player { } private async _nextFMTrack() { - const loadMoreTracks = async () => { - if (this.fmTrackList.length <= 5) { - const response = await fetchPersonalFMWithReactQuery() - this.fmTrackList.push(...(response?.data?.map(r => r.id) ?? [])) - } - } const prefetchNextTrack = async () => { const prefetchTrackID = this.fmTrackList[1] const track = await this._fetchTrack(prefetchTrackID) @@ -271,13 +266,20 @@ export class Player { } this.fmTrackList.shift() - if (this.fmTrackList.length === 0) await loadMoreTracks() + if (this.fmTrackList.length === 0) await this._loadMoreFMTracks() this._playTrack() - this.fmTrackList.length <= 1 ? await loadMoreTracks() : loadMoreTracks() + this.fmTrackList.length <= 1 ? await this._loadMoreFMTracks() : this._loadMoreFMTracks() prefetchNextTrack() } + private async _loadMoreFMTracks() { + if (this.fmTrackList.length <= 5) { + const response = await fetchPersonalFMWithReactQuery() + this.fmTrackList.push(...(response?.data?.map(r => r.id) ?? [])) + } + } + /** * Play current track * @param {boolean} fade fade in