From 00be1940d2659cd58a9ed5d37c8ec3b35116338e Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Wed, 23 Oct 2024 13:32:40 +0530 Subject: [PATCH] Update people view when state changes --- .../new/photos/components/gallery/reducer.ts | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/web/packages/new/photos/components/gallery/reducer.ts b/web/packages/new/photos/components/gallery/reducer.ts index 4557cf403e..80875c81bd 100644 --- a/web/packages/new/photos/components/gallery/reducer.ts +++ b/web/packages/new/photos/components/gallery/reducer.ts @@ -585,8 +585,28 @@ const galleryReducer: React.Reducer = ( state.archivedCollectionIDs, ), }); - case "setPeopleState": - return { ...state, peopleState: action.peopleState }; + case "setPeopleState": { + const peopleState = action.peopleState; + + if (state.view?.type != "people") return { ...state, peopleState }; + + const { view, extraVisiblePerson } = derivePeopleView( + peopleState, + state.tempDeletedFileIDs, + state.tempHiddenFileIDs, + state.selectedPersonID, + state.extraVisiblePerson, + ); + const filteredFiles = derivePeopleFilteredFiles(state.files, view); + return { + ...state, + peopleState, + selectedPersonID: view.activePerson?.id, + extraVisiblePerson, + view, + filteredFiles, + }; + } case "markTempDeleted": return refreshingFilteredFilesIfShowingAlbumsOrHiddenAlbums({ ...state, @@ -1212,8 +1232,8 @@ const deriveAlbumsFilteredFiles = ( }; /** - * Return a new state by recomputing the {@link filteredFiles} property if when - * we're showing the "hidden-albums" view. + * Return a new state by recomputing the {@link filteredFiles} property if we're + * showing the "hidden-albums" view. * * See {@link refreshingFilteredFilesIfShowingAlbums} for more details. */