From 09fcf3ec1f2739f95dc61213340042d0977be2e3 Mon Sep 17 00:00:00 2001 From: Jack Reed <phillipjreed@gmail.com> Date: Thu, 4 Apr 2019 14:42:25 -0600 Subject: [PATCH] Do not render components that are not visible --- .../src/components/WorkspaceMenu.test.js | 3 +- src/components/WorkspaceMenu.js | 70 +++++++++++-------- 2 files changed, 43 insertions(+), 30 deletions(-) diff --git a/__tests__/src/components/WorkspaceMenu.test.js b/__tests__/src/components/WorkspaceMenu.test.js index 383c63cc2..f769729e2 100644 --- a/__tests__/src/components/WorkspaceMenu.test.js +++ b/__tests__/src/components/WorkspaceMenu.test.js @@ -42,7 +42,8 @@ describe('WorkspaceMenu', () => { describe('handleMenuItemClose', () => { it('resets the anchor state', () => { wrapper.instance().handleMenuItemClose('windowList')(); - expect(wrapper.find(WindowList).props().open).toBe(false); + expect(Boolean(wrapper.state('windowList').anchorEl)).toEqual(false); + expect(wrapper.find(WindowList).length).toBe(0); }); }); diff --git a/src/components/WorkspaceMenu.js b/src/components/WorkspaceMenu.js index daf3f9cde..d1a203d3c 100644 --- a/src/components/WorkspaceMenu.js +++ b/src/components/WorkspaceMenu.js @@ -171,35 +171,47 @@ export class WorkspaceMenu extends Component { <Typography variant="body1">{t('importWorkspace')}</Typography> </MenuItem> </Menu> - <WindowList - anchorEl={windowList.anchorEl} - open={Boolean(windowList.anchorEl)} - handleClose={this.handleMenuItemClose('windowList')} - /> - <WorkspaceSettings - open={Boolean(toggleZoom.open)} - handleClose={this.handleMenuItemClose('toggleZoom')} - /> - <WorkspaceSettings - open={Boolean(settings.open)} - container={container} - handleClose={this.handleMenuItemClose('settings')} - /> - <WorkspaceSelectionDialog - open={Boolean(workspaceSelection.open)} - container={container} - handleClose={this.handleMenuItemClose('workspaceSelection')} - /> - <WorkspaceExport - open={Boolean(exportWorkspace.open)} - container={container} - handleClose={this.handleMenuItemClose('exportWorkspace')} - /> - <WorkspaceImport - open={Boolean(importWorkspace.open)} - container={container} - handleClose={this.handleMenuItemClose('importWorkspace')} - /> + {Boolean(windowList.anchorEl) && ( + <WindowList + anchorEl={windowList.anchorEl} + open={Boolean(windowList.anchorEl)} + handleClose={this.handleMenuItemClose('windowList')} + /> + )} + {Boolean(toggleZoom.open) && ( + <WorkspaceSettings + open={Boolean(toggleZoom.open)} + handleClose={this.handleMenuItemClose('toggleZoom')} + /> + )} + {Boolean(settings.open) && ( + <WorkspaceSettings + open={Boolean(settings.open)} + container={container} + handleClose={this.handleMenuItemClose('settings')} + /> + )} + {Boolean(workspaceSelection.open) && ( + <WorkspaceSelectionDialog + open={Boolean(workspaceSelection.open)} + container={container} + handleClose={this.handleMenuItemClose('workspaceSelection')} + /> + )} + {Boolean(exportWorkspace.open) && ( + <WorkspaceExport + open={Boolean(exportWorkspace.open)} + container={container} + handleClose={this.handleMenuItemClose('exportWorkspace')} + /> + )} + {Boolean(importWorkspace.open) && ( + <WorkspaceImport + open={Boolean(importWorkspace.open)} + container={container} + handleClose={this.handleMenuItemClose('importWorkspace')} + /> + )} </> ); } -- GitLab