From 594b5c458443ccc87b247b7f6725b6562a096383 Mon Sep 17 00:00:00 2001 From: sabrina-kiam <109105561+sabrina-kiam@users.noreply.github.com> Date: Tue, 15 Aug 2023 17:55:35 -0400 Subject: [PATCH] Move setCollectionPermalink within fetchCollectionSucceeded action (#3867) --- .../common/src/store/pages/collection/actions.ts | 8 ++------ .../common/src/store/pages/collection/reducer.ts | 15 +++++---------- .../src/store/pages/collection/selectors.ts | 2 +- .../common/src/store/pages/collection/types.ts | 2 +- .../src/common/store/pages/collection/sagas.js | 1 + .../collection-page/CollectionPageProvider.tsx | 14 ++++++++------ 6 files changed, 18 insertions(+), 24 deletions(-) diff --git a/packages/common/src/store/pages/collection/actions.ts b/packages/common/src/store/pages/collection/actions.ts index 14e7de85b8..1423b124b5 100644 --- a/packages/common/src/store/pages/collection/actions.ts +++ b/packages/common/src/store/pages/collection/actions.ts @@ -8,12 +8,6 @@ export const RESET_COLLECTION = 'RESET_COLLECTION' export const RESET_AND_FETCH_COLLECTION_TRACKS = 'RESET_AND_FETCH_COLLECTION_TRACKS' export const SET_SMART_COLLECTION = 'SET_SMART_COLLECTION' -export const SET_COLLECTION_PERMALINK = 'SET_COLLECTION_PERMALINK' - -export const setCollectionPermalink = (permalink: string) => ({ - type: SET_COLLECTION_PERMALINK, - permalink -}) export const fetchCollection = ( id: Nullable, @@ -29,11 +23,13 @@ export const fetchCollection = ( export const fetchCollectionSucceeded = ( collectionId: ID, collectionUid: string, + collectionPermalink: string, userUid: string ) => ({ type: FETCH_COLLECTION_SUCCEEDED, collectionId, collectionUid, + collectionPermalink, userUid }) diff --git a/packages/common/src/store/pages/collection/reducer.ts b/packages/common/src/store/pages/collection/reducer.ts index 3a7d8dbfe3..d93160aa15 100644 --- a/packages/common/src/store/pages/collection/reducer.ts +++ b/packages/common/src/store/pages/collection/reducer.ts @@ -11,8 +11,7 @@ import { FETCH_COLLECTION_SUCCEEDED, FETCH_COLLECTION_FAILED, RESET_COLLECTION, - SET_SMART_COLLECTION, - SET_COLLECTION_PERMALINK + SET_SMART_COLLECTION } from './actions' import { PREFIX as tracksPrefix } from './lineup/actions' @@ -22,7 +21,8 @@ export const initialState = { userUid: null, status: null, smartCollectionVariant: null, - tracks: initialLineupState + tracks: initialLineupState, + collectionPermalink: null } const actionsMap = { @@ -33,19 +33,14 @@ const actionsMap = { smartCollectionVariant: null } }, - [SET_COLLECTION_PERMALINK](state, action) { - return { - ...state, - permalink: action.permalink - } - }, [FETCH_COLLECTION_SUCCEEDED](state, action) { return { ...state, collectionId: action.collectionId, collectionUid: action.collectionUid, userUid: action.userUid, - status: Status.SUCCESS + status: Status.SUCCESS, + collectionPermalink: action.collectionPermalink } }, [FETCH_COLLECTION_FAILED](state, action) { diff --git a/packages/common/src/store/pages/collection/selectors.ts b/packages/common/src/store/pages/collection/selectors.ts index 2bb10fe8da..7d071e355f 100644 --- a/packages/common/src/store/pages/collection/selectors.ts +++ b/packages/common/src/store/pages/collection/selectors.ts @@ -17,7 +17,7 @@ export const getCollectionStatus = (state: CommonState) => export const getSmartCollectionVariant = (state: CommonState) => state.pages.collection.smartCollectionVariant export const getCollectionPermalink = (state: CommonState) => - state.pages.collection.permalink + state.pages.collection.collectionPermalink export const getCollection = (state: CommonState, params?: { id: ID }) => { const smartCollectionVariant = getSmartCollectionVariant(state) if (smartCollectionVariant) { diff --git a/packages/common/src/store/pages/collection/types.ts b/packages/common/src/store/pages/collection/types.ts index 21bfd35df1..33bd0debaa 100644 --- a/packages/common/src/store/pages/collection/types.ts +++ b/packages/common/src/store/pages/collection/types.ts @@ -15,7 +15,7 @@ export type CollectionTrack = LineupTrack & { dateAdded: Moment } & { } export type CollectionsPageState = { - permalink: string + collectionPermalink: string collectionId: ID | null collectionUid: UID | null status: Status | null diff --git a/packages/web/src/common/store/pages/collection/sagas.js b/packages/web/src/common/store/pages/collection/sagas.js index 10f1a1f641..e06474bfd8 100644 --- a/packages/web/src/common/store/pages/collection/sagas.js +++ b/packages/web/src/common/store/pages/collection/sagas.js @@ -65,6 +65,7 @@ function* watchFetchCollection() { fetchCollectionSucceeded( collection.playlist_id, collectionUid, + collection.permalink, userUid, collection.playlist_contents.track_ids.length ) diff --git a/packages/web/src/pages/collection-page/CollectionPageProvider.tsx b/packages/web/src/pages/collection-page/CollectionPageProvider.tsx index 8d9f16e105..bd23e3c852 100644 --- a/packages/web/src/pages/collection-page/CollectionPageProvider.tsx +++ b/packages/web/src/pages/collection-page/CollectionPageProvider.tsx @@ -246,8 +246,12 @@ class CollectionPage extends Component< if (metadata && metadata._moved && !updatingRoute) { this.setState({ updatingRoute: true }) const collectionId = Uid.fromString(metadata._moved).id - // TODO: Put fetch collection succeeded and then replace route - fetchCollectionSucceeded(collectionId, metadata._moved, userUid) + fetchCollectionSucceeded( + collectionId, + metadata._moved, + metadata.permalink || '', + userUid + ) const newPath = pathname.replace( `${metadata.playlist_id}`, collectionId.toString() @@ -364,7 +368,6 @@ class CollectionPage extends Component< if (params?.permalink) { const { permalink, collectionId } = params if (forceFetch || params.permalink) { - this.props.setCollectionPermalink(permalink) this.props.fetchCollection(collectionId, permalink) this.props.fetchTracks() } @@ -389,7 +392,6 @@ class CollectionPage extends Component< resetCollection = () => { const { collectionUid, userUid } = this.props - this.props.setCollectionPermalink('') this.props.resetCollection(collectionUid, userUid) } @@ -875,8 +877,6 @@ function mapDispatchToProps(dispatch: Dispatch) { dispatch(collectionActions.fetchCollection(id, permalink)), fetchTracks: () => dispatch(tracksActions.fetchLineupMetadatas(0, 200, false, undefined)), - setCollectionPermalink: (permalink: string) => - dispatch(collectionActions.setCollectionPermalink(permalink)), resetCollection: (collectionUid: string, userUid: string) => dispatch(collectionActions.resetCollection(collectionUid, userUid)), goToRoute: (route: string) => dispatch(pushRoute(route)), @@ -977,12 +977,14 @@ function mapDispatchToProps(dispatch: Dispatch) { fetchCollectionSucceeded: ( collectionId: ID, collectionUid: string, + collectionPermalink: string, userId: string ) => dispatch( collectionActions.fetchCollectionSucceeded( collectionId, collectionUid, + collectionPermalink, userId ) ),