Skip to content
Snippets Groups Projects
Commit 40d34bb6 authored by Chris Beer's avatar Chris Beer
Browse files

Only create a sidebar panel if a default panel type is configured

parent 0789034f
No related branches found
No related tags found
No related merge requests found
...@@ -150,7 +150,9 @@ describe('window actions', () => { ...@@ -150,7 +150,9 @@ describe('window actions', () => {
companionWindows: {}, companionWindows: {},
config: { config: {
thumbnailNavigation: {}, thumbnailNavigation: {},
window: {}, window: {
defaultSideBarPanel: 'info',
},
}, },
windows: {}, windows: {},
}; };
...@@ -167,6 +169,35 @@ describe('window actions', () => { ...@@ -167,6 +169,35 @@ describe('window actions', () => {
expect(action.window.companionWindowIds[2]).toEqual(action.companionWindows[2].id); expect(action.window.companionWindowIds[2]).toEqual(action.companionWindows[2].id);
expect(action.companionWindows[2]).toMatchObject({ content: 'attribution', position: 'right' }); expect(action.companionWindows[2]).toMatchObject({ content: 'attribution', position: 'right' });
}); });
it('creates a new window without a default sidebar', () => {
const options = {
canvasIndex: 1,
companionWindows: [],
id: 'helloworld',
};
const mockState = {
companionWindows: {},
config: {
thumbnailNavigation: {},
window: {
defaultSideBarPanel: null,
},
},
windows: {},
};
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.companionWindowIds.length).toEqual(1);
expect(action.companionWindows[0]).toMatchObject({ content: 'thumbnailNavigation' });
});
}); });
describe('updateWindow', () => { describe('updateWindow', () => {
......
...@@ -42,14 +42,37 @@ export function addWindow({ companionWindows, ...options }) { ...@@ -42,14 +42,37 @@ export function addWindow({ companionWindows, ...options }) {
const { config, windows } = getState(); const { config, windows } = getState();
const numWindows = Object.keys(windows).length; const numWindows = Object.keys(windows).length;
const cwDefault = `cw-${uuid()}`;
const cwThumbs = `cw-${uuid()}`; const cwThumbs = `cw-${uuid()}`;
const additionalCompanionWindowIds = (companionWindows || []).map(e => `cw-${uuid()}`);
const defaultCompanionWindows = [
{
content: 'thumbnailNavigation',
default: true,
id: cwThumbs,
position: options.thumbnailNavigationPosition
|| config.thumbnailNavigation.defaultPosition,
},
...(
(companionWindows || []).map((cw, i) => ({ ...cw, id: `cw-${uuid()}` }))
),
];
if (config.window.defaultSideBarPanel) {
defaultCompanionWindows.unshift(
{
content: config.window.defaultSideBarPanel,
default: true,
id: `cw-${uuid()}`,
position: 'left',
},
);
}
const defaultOptions = { const defaultOptions = {
canvasId: undefined, canvasId: undefined,
collectionIndex: 0, collectionIndex: 0,
companionAreaOpen: true, companionAreaOpen: true,
companionWindowIds: [cwDefault, cwThumbs, ...additionalCompanionWindowIds], companionWindowIds: defaultCompanionWindows.map(cw => cw.id),
displayAllAnnotations: config.displayAllAnnotations || false, displayAllAnnotations: config.displayAllAnnotations || false,
draggingEnabled: true, draggingEnabled: true,
id: `window-${uuid()}`, id: `window-${uuid()}`,
...@@ -59,7 +82,7 @@ export function addWindow({ companionWindows, ...options }) { ...@@ -59,7 +82,7 @@ export function addWindow({ companionWindows, ...options }) {
rangeId: null, rangeId: null,
rotation: null, rotation: null,
selectedAnnotations: {}, selectedAnnotations: {},
sideBarOpen: config.window.sideBarOpenByDefault, sideBarOpen: config.window.defaultSideBarPanel && config.window.sideBarOpenByDefault,
sideBarPanel: config.window.defaultSideBarPanel, sideBarPanel: config.window.defaultSideBarPanel,
thumbnailNavigationId: cwThumbs, thumbnailNavigationId: cwThumbs,
}; };
...@@ -72,24 +95,7 @@ export function addWindow({ companionWindows, ...options }) { ...@@ -72,24 +95,7 @@ export function addWindow({ companionWindows, ...options }) {
}; };
dispatch({ dispatch({
companionWindows: [ companionWindows: defaultCompanionWindows,
{
content: config.window.defaultSideBarPanel,
default: true,
id: cwDefault,
position: 'left',
},
{
content: 'thumbnailNavigation',
default: true,
id: cwThumbs,
position: options.thumbnailNavigationPosition
|| config.thumbnailNavigation.defaultPosition,
},
...(
(companionWindows || []).map((cw, i) => ({ ...cw, id: additionalCompanionWindowIds[i] }))
),
],
elasticLayout, elasticLayout,
type: ActionTypes.ADD_WINDOW, type: ActionTypes.ADD_WINDOW,
window: { ...defaultOptions, ...options }, window: { ...defaultOptions, ...options },
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment