From 10d1fffe77c3f468733c778ccb6ea007e2352195 Mon Sep 17 00:00:00 2001 From: Jack Reed <phillipjreed@gmail.com> Date: Mon, 30 Nov 2020 16:22:49 -0700 Subject: [PATCH] Enhance configuration settings so that a window can specify the sidebarPanel --- __tests__/src/actions/window.test.js | 25 +++++++++++++++++++++++++ src/state/actions/window.js | 10 +++++++--- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/__tests__/src/actions/window.test.js b/__tests__/src/actions/window.test.js index e7599b5d4..bdccad860 100644 --- a/__tests__/src/actions/window.test.js +++ b/__tests__/src/actions/window.test.js @@ -152,6 +152,31 @@ describe('window actions', () => { expect(action.companionWindows[0]).toMatchObject({ content: 'thumbnailNavigation' }); }); + it('enables a window to override the panel being displayed', () => { + const options = { + id: 'helloworld', + sideBarPanel: 'canvas', + }; + const mockState = { + companionWindows: {}, + config: { + thumbnailNavigation: {}, + window: { + defaultSideBarPanel: 'info', + }, + }, + workspace: {}, + }; + const mockDispatch = jest.fn(() => ({})); + const mockGetState = jest.fn(() => mockState); + const thunk = actions.addWindow(options); + + thunk(mockDispatch, mockGetState); + + const action = mockDispatch.mock.calls[0][0]; + expect(action.window.sideBarPanel).toEqual('canvas'); + }); + it('pulls a provided manifest out', () => { const options = { canvasIndex: 1, diff --git a/src/state/actions/window.js b/src/state/actions/window.js index 1534e5403..e8eea8d2f 100644 --- a/src/state/actions/window.js +++ b/src/state/actions/window.js @@ -44,10 +44,12 @@ export function addWindow({ companionWindows, manifest, ...options }) { ), ]; - if (config.window.defaultSideBarPanel || config.window.sideBarPanel) { + if (options.sideBarPanel || config.window.defaultSideBarPanel || config.window.sideBarPanel) { defaultCompanionWindows.unshift( { - content: config.window.defaultSideBarPanel || config.window.sideBarPanel, + content: options.sideBarPanel + || config.window.defaultSideBarPanel + || config.window.sideBarPanel, default: true, id: `cw-${uuid()}`, position: 'left', @@ -72,7 +74,9 @@ export function addWindow({ companionWindows, manifest, ...options }) { sideBarOpen: config.window.sideBarOpenByDefault !== undefined ? config.window.sideBarOpenByDefault : config.window.sideBarOpen, - sideBarPanel: config.window.defaultSideBarPanel || config.window.sideBarPanel, + sideBarPanel: options.sideBarPanel + || config.window.defaultSideBarPanel + || config.window.sideBarPanel, thumbnailNavigationId: cwThumbs, }; -- GitLab