From 8cfa7f9cb8a967bd70c64b17f2166194643bb346 Mon Sep 17 00:00:00 2001 From: Alexey Safronov Date: Fri, 12 Jul 2019 16:45:19 +0300 Subject: [PATCH] web: components: Added setState on componentDidUpdate for Layout --- .../src/components/layout/index.js | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/web/ASC.Web.Components/src/components/layout/index.js b/web/ASC.Web.Components/src/components/layout/index.js index c710f5cfb3..0aa5d65191 100644 --- a/web/ASC.Web.Components/src/components/layout/index.js +++ b/web/ASC.Web.Components/src/components/layout/index.js @@ -10,9 +10,26 @@ import NavLogoItem from './sub-components/nav-logo-item' import NavItem from './sub-components/nav-item' class Layout extends React.Component { - constructor(props) { super(props); + //console.log("constructor: props", props); + this.state = this.mapPropsToState(props); + }; + + componentDidUpdate(prevProps, prevState) { + // Store prevId in state so we can compare when props change. + // Clear out previously-loaded data (so we don't render stale stuff). + if (this.props.availableModules !== prevProps.availableModules) { + //console.log("componentDidUpdate: currentUser NOT equals", this.props.availableModules, prevState.availableModules); + this.setState(this.mapPropsToState(this.props)); + } + /*else { + console.log("componentDidUpdate: currentUser EQUALS", this.props.availableModules, prevState.availableModules); + }*/ + } + + mapPropsToState = (props) => { + console.log("mapPropsToState", props); let currentModule = null, isolateModules = [], @@ -42,7 +59,7 @@ class Layout extends React.Component { isNavAvailable = mainModules.length > 0, isAsideAvailable = !!props.asideContent; - this.state = { + let newState = { isBackdropAvailable: isBackdropAvailable, isHeaderNavAvailable: isHeaderNavAvailable, isHeaderAvailable: isHeaderAvailable, @@ -69,7 +86,9 @@ class Layout extends React.Component { totalNotifications: totalNotifications }; - }; + + return newState; + } backdropClick = () => { this.setState({