From e694e65651448815de7a5b2b4e82765545d631de Mon Sep 17 00:00:00 2001 From: Chris Beer Date: Fri, 8 Apr 2022 10:45:39 -0700 Subject: [PATCH] Load manifests provided by the imported configuration --- __tests__/src/reducers/manifests.test.js | 6 ++++++ src/state/reducers/manifests.js | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/__tests__/src/reducers/manifests.test.js b/__tests__/src/reducers/manifests.test.js index 31ce91188f..ad38401983 100644 --- a/__tests__/src/reducers/manifests.test.js +++ b/__tests__/src/reducers/manifests.test.js @@ -94,4 +94,10 @@ describe('manifests reducer', () => { type: ActionTypes.IMPORT_MIRADOR_STATE, })).toEqual({ new: 'stuff' }); }); + it('should handle IMPORT_CONFIG setting to load manifests', () => { + expect(manifestsReducer({}, { + config: { manifests: { new: 'stuff' } }, + type: ActionTypes.IMPORT_CONFIG, + })).toEqual({ new: 'stuff' }); + }); }); diff --git a/src/state/reducers/manifests.js b/src/state/reducers/manifests.js index 2fb36b4b36..8db1dc050c 100644 --- a/src/state/reducers/manifests.js +++ b/src/state/reducers/manifests.js @@ -1,4 +1,5 @@ import omit from 'lodash/omit'; +import deepmerge from 'deepmerge'; import ActionTypes from '../actions/action-types'; /** @@ -36,6 +37,9 @@ export const manifestsReducer = (state = {}, action) => { isFetching: false, }, }; + case ActionTypes.UPDATE_CONFIG: + case ActionTypes.IMPORT_CONFIG: + return deepmerge(state, action.config.manifests); case ActionTypes.REMOVE_MANIFEST: return Object.keys(state).reduce((object, key) => { if (key !== action.manifestId) {