From b7612887a85d2d8d406da1bc3464a193bb30fc1e Mon Sep 17 00:00:00 2001 From: Chris Beer <cabeer@stanford.edu> Date: Fri, 8 Mar 2019 14:05:16 -0800 Subject: [PATCH] Allow multiple companion windows in companion areas, except for the left one --- src/containers/CompanionArea.js | 1 + src/state/actions/companionWindow.js | 20 +++++++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/containers/CompanionArea.js b/src/containers/CompanionArea.js index 22095d65e..90c4c6b81 100644 --- a/src/containers/CompanionArea.js +++ b/src/containers/CompanionArea.js @@ -26,6 +26,7 @@ const styles = theme => ({ }, horizontal: { width: '100%', + flexDirection: 'column', }, toggle: { position: 'absolute', diff --git a/src/state/actions/companionWindow.js b/src/state/actions/companionWindow.js index e01867b88..81ea10c5f 100644 --- a/src/state/actions/companionWindow.js +++ b/src/state/actions/companionWindow.js @@ -21,7 +21,7 @@ export function addCompanionWindow(payload, defaults = defaultProps) { /** */ export function updateCompanionWindow(windowId, id, payload) { return (dispatch, getState) => { - if (payload.position) { + if (payload.position === 'left') { const { windows, companionWindows } = getState(); const { companionWindowIds } = windows[windowId]; @@ -66,11 +66,11 @@ export function popOutCompanionWindow(windowId, panelType, position) { const { windows, companionWindows } = getState(); const { companionWindowIds } = windows[windowId]; - companionWindowIds - .filter(id => companionWindows[id].position === position) - .map(id => dispatch(removeCompanionWindow(id))); - if (position === 'left') { + companionWindowIds + .filter(id => companionWindows[id].position === position) + .map(id => dispatch(removeCompanionWindow(id))); + dispatch(setWindowSideBarPanel(windowId, panelType)); dispatch(setCompanionAreaOpen(windowId, true)); @@ -79,8 +79,14 @@ export function popOutCompanionWindow(windowId, panelType, position) { const action = dispatch(addCompanionWindow({ content: panelType, position })); const companionWindowId = action.id; - const existingCompanionWindowIds = companionWindowIds - .filter(id => (companionWindows[id].position !== position)); + let existingCompanionWindowIds; + + if (position === 'left') { + existingCompanionWindowIds = companionWindowIds + .filter(id => (companionWindows[id].position !== position)); + } else { + existingCompanionWindowIds = companionWindowIds; + } dispatch(updateWindow(windowId, { companionWindowIds: existingCompanionWindowIds.concat([companionWindowId]), -- GitLab