diff --git a/packages/web/src/pages/track-page/components/desktop/TrackPage.tsx b/packages/web/src/pages/track-page/components/desktop/TrackPage.tsx index b2c1fc3a831..fda8ee79646 100644 --- a/packages/web/src/pages/track-page/components/desktop/TrackPage.tsx +++ b/packages/web/src/pages/track-page/components/desktop/TrackPage.tsx @@ -72,6 +72,10 @@ const TrackPage = () => { const playing = useSelector(getPlaying) const previewing = useSelector(getPreviewing) const source = useSelector(trackPageSelectors.getSourceSelector) + const trackPageLineup = useSelector(trackPageSelectors.getLineup) + const heroTrackUid = trackPageLineup.entries.find( + (entry) => entry.id === track?.track_id + )?.uid const heroPlaying = playing && @@ -122,7 +126,8 @@ const TrackPage = () => { const isOwner = track.owner_id === accountUserId const shouldPreview = isPreview && isOwner const isSameTrack = currentTrack?.track_id === track.track_id - const trackUid = makeUid(Kind.TRACKS, track.track_id, source) + const trackUid = + heroTrackUid ?? makeUid(Kind.TRACKS, track.track_id, source) if (previewing !== isPreview || !isSameTrack) { dispatch(playerActions.stop({})) @@ -153,7 +158,15 @@ const TrackPage = () => { ) } }, - [track, accountUserId, currentTrack, previewing, dispatch, source] + [ + track, + accountUserId, + currentTrack, + previewing, + dispatch, + heroTrackUid, + source + ] ) const onHeroRepost = useCallback( diff --git a/packages/web/src/pages/track-page/components/mobile/TrackPage.tsx b/packages/web/src/pages/track-page/components/mobile/TrackPage.tsx index 1841969c855..2e6503aec8c 100644 --- a/packages/web/src/pages/track-page/components/mobile/TrackPage.tsx +++ b/packages/web/src/pages/track-page/components/mobile/TrackPage.tsx @@ -79,6 +79,10 @@ const TrackPage = () => { const playing = useSelector(getPlaying) const previewing = useSelector(getPreviewing) const source = useSelector(trackPageSelectors.getSourceSelector) + const trackPageLineup = useSelector(trackPageSelectors.getLineup) + const heroTrackUid = trackPageLineup.entries.find( + (entry) => entry.id === track?.track_id + )?.uid const heroPlaying = playing && @@ -135,7 +139,8 @@ const TrackPage = () => { const isOwner = track.owner_id === accountUserId const shouldPreview = isPreview && isOwner const isSameTrack = currentTrack?.track_id === track.track_id - const trackUid = makeUid(Kind.TRACKS, track.track_id, source) + const trackUid = + heroTrackUid ?? makeUid(Kind.TRACKS, track.track_id, source) if (previewing !== isPreview || !isSameTrack) { dispatch(playerActions.stop({})) @@ -166,7 +171,15 @@ const TrackPage = () => { ) } }, - [track, accountUserId, currentTrack, previewing, dispatch, source] + [ + track, + accountUserId, + currentTrack, + previewing, + dispatch, + heroTrackUid, + source + ] ) const onHeroRepost = useCallback(