diff --git a/__tests__/src/actions/window.test.js b/__tests__/src/actions/window.test.js index e7599b5d4b8f3b65aec0f6537d67f16ce662bba3..bdccad8603e9e98de69fa9730d95c2c1b9fb024e 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 1534e5403efbe87a6c5c4412aecf5b1e55247f08..e8eea8d2f97af433bcd911af57d834d447d59f31 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, };