diff --git a/src/components/layout/Layout/Layout.js b/src/components/layout/Layout/Layout.js index ea61d02d5..126219057 100644 --- a/src/components/layout/Layout/Layout.js +++ b/src/components/layout/Layout/Layout.js @@ -14,7 +14,9 @@ const title = getConfigVar('TITLE'); const Layout = ({ toggleSize, toggleVisibility, - sidebar, + isLoggedIn, + sidebarIsCollapsed, + sidebarIsOpen, pendingFetchOperations, children, lang, @@ -26,14 +28,15 @@ const Layout = ({ className={classnames({ wrapper: true, 'sidebar-mini': true, - 'sidebar-collapse': sidebar.isCollapsed, - 'sidebar-open': sidebar.isOpen, + 'sidebar-collapse': sidebarIsCollapsed, + 'sidebar-open': sidebarIsOpen, })} style={{ overflow: 'visible', }}>
@@ -56,10 +59,9 @@ const Layout = ({ Layout.propTypes = { toggleSize: PropTypes.func, toggleVisibility: PropTypes.func, - sidebar: PropTypes.shape({ - isCollapsed: PropTypes.bool, - isOpen: PropTypes.bool, - }), + isLoggedIn: PropTypes.bool, + sidebarIsCollapsed: PropTypes.bool, + sidebarIsOpen: PropTypes.bool, pendingFetchOperations: PropTypes.bool, onCloseSidebar: PropTypes.func, children: PropTypes.element, diff --git a/src/components/widgets/Header/Header.js b/src/components/widgets/Header/Header.js index 030dab560..8eead7236 100644 --- a/src/components/widgets/Header/Header.js +++ b/src/components/widgets/Header/Header.js @@ -24,6 +24,7 @@ class Header extends Component { render() { const { + isLoggedIn, availableLangs = [], currentLang, currentUrl = '', @@ -39,7 +40,7 @@ class Header extends Component { ) : ( - ReC + ReX )} @@ -77,7 +78,7 @@ class Header extends Component {
    - + {isLoggedIn && } {availableLangs.map(lang => ( @@ -91,6 +92,7 @@ class Header extends Component { } Header.propTypes = { + isLoggedIn: PropTypes.bool, toggleSidebarSize: PropTypes.func.isRequired, toggleSidebarVisibility: PropTypes.func.isRequired, currentLang: PropTypes.string.isRequired, diff --git a/src/components/widgets/HeaderNotificationsDropdown/headerNotificationDropdown.less b/src/components/widgets/HeaderNotificationsDropdown/headerNotificationDropdown.less index 415889461..ca8094a5b 100644 --- a/src/components/widgets/HeaderNotificationsDropdown/headerNotificationDropdown.less +++ b/src/components/widgets/HeaderNotificationsDropdown/headerNotificationDropdown.less @@ -1,5 +1,5 @@ .dropdownMenu { width: 42vw !important; min-width: 400px !important; - box-shadow: 8px 8px 16px #999 !important; + box-shadow: 8px 8px 16px #999 !important; } diff --git a/src/components/widgets/HeaderSystemMessagesDropdown/HeaderSystemMessagesDropdown.less b/src/components/widgets/HeaderSystemMessagesDropdown/HeaderSystemMessagesDropdown.less index 66c54b002..25ed47070 100644 --- a/src/components/widgets/HeaderSystemMessagesDropdown/HeaderSystemMessagesDropdown.less +++ b/src/components/widgets/HeaderSystemMessagesDropdown/HeaderSystemMessagesDropdown.less @@ -1,7 +1,7 @@ .dropdownMenu { width: 70vw !important; min-width: 400px !important; - box-shadow: 8px 8px 16px #999 !important; + box-shadow: 8px 8px 16px #999 !important; } .messageList { diff --git a/src/containers/App/App.js b/src/containers/App/App.js index 625a47d4d..6548ee1c9 100644 --- a/src/containers/App/App.js +++ b/src/containers/App/App.js @@ -10,6 +10,7 @@ import { fetchUsersInstancesIfNeeded } from '../../redux/modules/instances'; import { fetchManyUserInstancesStatus } from '../../redux/selectors/instances'; import { fetchAllGroups } from '../../redux/modules/groups'; import { fetchManyGroupsStatus } from '../../redux/selectors/groups'; +import { fetchAllUserMessages } from '../../redux/modules/systemMessages'; import { logout, refresh, selectInstance } from '../../redux/modules/auth'; import { getJsData, resourceStatus } from '../../redux/helpers/resourceManager'; @@ -44,6 +45,7 @@ class App extends Component { }) ), dispatch(fetchUsersInstancesIfNeeded(userId)), + dispatch(fetchAllUserMessages), ]) : Promise.resolve(); diff --git a/src/containers/HeaderSystemMessagesContainer/HeaderSystemMessagesContainer.js b/src/containers/HeaderSystemMessagesContainer/HeaderSystemMessagesContainer.js index 80aa4c517..fd0645777 100644 --- a/src/containers/HeaderSystemMessagesContainer/HeaderSystemMessagesContainer.js +++ b/src/containers/HeaderSystemMessagesContainer/HeaderSystemMessagesContainer.js @@ -5,17 +5,13 @@ import { connect } from 'react-redux'; import HeaderSystemMessagesDropdown from '../../components/widgets/HeaderSystemMessagesDropdown'; import { readyActiveSystemMessagesSelector, fetchManyUserStatus } from '../../redux/selectors/systemMessages'; import FetchManyResourceRenderer from '../../components/helpers/FetchManyResourceRenderer'; -import { fetchAllUserMessages } from '../../redux/modules/systemMessages'; class HeaderSystemMessagesContainer extends Component { state = { isOpen: false }; - static loadAsync = (params, dispatch) => Promise.all([dispatch(fetchAllUserMessages)]); - // Monitor clicking and hide the notifications panel when the user clicks sideways componentWillMount = () => { - this.props.loadAsync(); if (canUseDOM) { window.addEventListener('mousedown', this.close); } @@ -55,15 +51,9 @@ class HeaderSystemMessagesContainer extends Component { HeaderSystemMessagesContainer.propTypes = { systemMessages: PropTypes.array.isRequired, fetchStatus: PropTypes.string, - loadAsync: PropTypes.func.isRequired, }; -export default connect( - state => ({ - fetchStatus: fetchManyUserStatus(state), - systemMessages: readyActiveSystemMessagesSelector(state), - }), - dispatch => ({ - loadAsync: () => HeaderSystemMessagesContainer.loadAsync({}, dispatch), - }) -)(HeaderSystemMessagesContainer); +export default connect(state => ({ + fetchStatus: fetchManyUserStatus(state), + systemMessages: readyActiveSystemMessagesSelector(state), +}))(HeaderSystemMessagesContainer); diff --git a/src/containers/LayoutContainer/LayoutContainer.js b/src/containers/LayoutContainer/LayoutContainer.js index b4ad95244..0a94b942f 100644 --- a/src/containers/LayoutContainer/LayoutContainer.js +++ b/src/containers/LayoutContainer/LayoutContainer.js @@ -8,6 +8,7 @@ import Layout from '../../components/layout/Layout'; import { anyPendingFetchOperations } from '../../redux/selectors/app'; import { toggleSize, toggleVisibility, collapse, unroll } from '../../redux/modules/sidebar'; import { isVisible, isCollapsed } from '../../redux/selectors/sidebar'; +import { isLoggedIn } from '../../redux/selectors/auth'; import { messages, localeData, defaultLanguage } from '../../locales'; import { linksFactory, isAbsolute } from '../../links'; @@ -89,8 +90,8 @@ class LayoutContainer extends Component { }); maybeHideSidebar = e => { - const { sidebar, toggleVisibility } = this.props; - if (sidebar.isOpen) { + const { sidebarIsOpen, toggleVisibility } = this.props; + if (sidebarIsOpen) { toggleVisibility(); } }; @@ -111,7 +112,9 @@ class LayoutContainer extends Component { const { children, location: { pathname }, - sidebar, + isLoggedIn, + sidebarIsCollapsed, + sidebarIsOpen, toggleSize, toggleVisibility, pendingFetchOperations, @@ -124,7 +127,9 @@ class LayoutContainer extends Component { return ( ({ - sidebar: { - isOpen: isVisible(state), - isCollapsed: isCollapsed(state), - }, + isLoggedIn: isLoggedIn(state), + sidebarIsCollapsed: isCollapsed(state), + sidebarIsOpen: isVisible(state), pendingFetchOperations: anyPendingFetchOperations(state), });