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