From 39861022acae08aface93d0382568677a36f8596 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 10 Mar 2026 19:34:05 +0000 Subject: [PATCH 1/3] Fix playlist table favorite action dispatch Co-authored-by: Ray Jacobson --- .../components/desktop/CollectionPage.tsx | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/packages/web/src/pages/collection-page/components/desktop/CollectionPage.tsx b/packages/web/src/pages/collection-page/components/desktop/CollectionPage.tsx index 588013b012a..f2d9bad3be9 100644 --- a/packages/web/src/pages/collection-page/components/desktop/CollectionPage.tsx +++ b/packages/web/src/pages/collection-page/components/desktop/CollectionPage.tsx @@ -1,6 +1,5 @@ import { useCallback, useMemo } from 'react' -import { useFavoriteTrack, useUnfavoriteTrack } from '@audius/common/api' import { Variant, Status, @@ -13,12 +12,14 @@ import { import { CollectionTrack, CollectionsPageType, + tracksSocialActions, usePremiumContentPurchaseModal, PurchaseableContentType } from '@audius/common/store' import { removeNullable } from '@audius/common/utils' import { Divider, Flex, Paper, Text } from '@audius/harmony' import { Id } from '@audius/sdk' +import { useDispatch } from 'react-redux' import { CollectionDogEar } from 'components/collection' import { CollectionHeader } from 'components/collection/desktop/CollectionHeader' @@ -86,6 +87,7 @@ type CollectionPageProps = { } const CollectionPage = ({ type }: CollectionPageProps) => { + const dispatch = useDispatch() const mainContentRef = useMainContentRef() const { collection, @@ -127,23 +129,16 @@ const CollectionPage = ({ type }: CollectionPageProps) => { [openPremiumContentModal] ) - const { mutate: favoriteTrack } = useFavoriteTrack() - const { mutate: unfavoriteTrack } = useUnfavoriteTrack() + const { saveTrack, unsaveTrack } = tracksSocialActions const toggleSaveTrack = useCallback( (track: Track) => { if (track.has_current_user_saved) { - unfavoriteTrack({ - trackId: track.track_id, - source: FavoriteSource.COLLECTION_PAGE - }) + dispatch(unsaveTrack(track.track_id, FavoriteSource.COLLECTION_PAGE)) } else { - favoriteTrack({ - trackId: track.track_id, - source: FavoriteSource.COLLECTION_PAGE - }) + dispatch(saveTrack(track.track_id, FavoriteSource.COLLECTION_PAGE)) } }, - [favoriteTrack, unfavoriteTrack] + [dispatch, saveTrack, unsaveTrack] ) // Compute values needed for useMemo (handle undefined collection case) From 4beaa2cf4f3cc3d05228fbf06ea251acf0546ae5 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 10 Mar 2026 20:05:32 +0000 Subject: [PATCH 2/3] Fix table favorite active icon class Co-authored-by: Ray Jacobson --- .../web/src/components/table/components/TableFavoriteButton.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/src/components/table/components/TableFavoriteButton.tsx b/packages/web/src/components/table/components/TableFavoriteButton.tsx index 16d114407d7..5c6fe733461 100644 --- a/packages/web/src/components/table/components/TableFavoriteButton.tsx +++ b/packages/web/src/components/table/components/TableFavoriteButton.tsx @@ -24,7 +24,7 @@ export const TableFavoriteButton = ({
Date: Wed, 11 Mar 2026 00:04:58 +0000 Subject: [PATCH 3/3] Revert collection favorite handler to tan-query hooks Co-authored-by: Ray Jacobson --- .../components/desktop/CollectionPage.tsx | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/packages/web/src/pages/collection-page/components/desktop/CollectionPage.tsx b/packages/web/src/pages/collection-page/components/desktop/CollectionPage.tsx index f2d9bad3be9..588013b012a 100644 --- a/packages/web/src/pages/collection-page/components/desktop/CollectionPage.tsx +++ b/packages/web/src/pages/collection-page/components/desktop/CollectionPage.tsx @@ -1,5 +1,6 @@ import { useCallback, useMemo } from 'react' +import { useFavoriteTrack, useUnfavoriteTrack } from '@audius/common/api' import { Variant, Status, @@ -12,14 +13,12 @@ import { import { CollectionTrack, CollectionsPageType, - tracksSocialActions, usePremiumContentPurchaseModal, PurchaseableContentType } from '@audius/common/store' import { removeNullable } from '@audius/common/utils' import { Divider, Flex, Paper, Text } from '@audius/harmony' import { Id } from '@audius/sdk' -import { useDispatch } from 'react-redux' import { CollectionDogEar } from 'components/collection' import { CollectionHeader } from 'components/collection/desktop/CollectionHeader' @@ -87,7 +86,6 @@ type CollectionPageProps = { } const CollectionPage = ({ type }: CollectionPageProps) => { - const dispatch = useDispatch() const mainContentRef = useMainContentRef() const { collection, @@ -129,16 +127,23 @@ const CollectionPage = ({ type }: CollectionPageProps) => { [openPremiumContentModal] ) - const { saveTrack, unsaveTrack } = tracksSocialActions + const { mutate: favoriteTrack } = useFavoriteTrack() + const { mutate: unfavoriteTrack } = useUnfavoriteTrack() const toggleSaveTrack = useCallback( (track: Track) => { if (track.has_current_user_saved) { - dispatch(unsaveTrack(track.track_id, FavoriteSource.COLLECTION_PAGE)) + unfavoriteTrack({ + trackId: track.track_id, + source: FavoriteSource.COLLECTION_PAGE + }) } else { - dispatch(saveTrack(track.track_id, FavoriteSource.COLLECTION_PAGE)) + favoriteTrack({ + trackId: track.track_id, + source: FavoriteSource.COLLECTION_PAGE + }) } }, - [dispatch, saveTrack, unsaveTrack] + [favoriteTrack, unfavoriteTrack] ) // Compute values needed for useMemo (handle undefined collection case)