diff --git a/bigbluebutton-html5/imports/ui/components/nav-bar/component.jsx b/bigbluebutton-html5/imports/ui/components/nav-bar/component.jsx index 676ae1ea1a..fafe923d5c 100755 --- a/bigbluebutton-html5/imports/ui/components/nav-bar/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/nav-bar/component.jsx @@ -2,9 +2,7 @@ import React, { Component, PropTypes } from 'react'; import _ from 'lodash'; import cx from 'classnames'; import styles from './styles.scss'; - import { showModal } from '/imports/ui/components/app/service'; - import Button from '../button/component'; import RecordingIndicator from './recording-indicator/component'; import SettingsDropdownContainer from './settings-dropdown/container'; @@ -50,14 +48,8 @@ class NavBar extends Component { } handleToggleUserList() { - let btn = document.getElementById('UserListBtn') - .getAttribute('aria-expanded'); - - let isExpanded = (btn == 'true') ? 'false' : 'true'; - - document.getElementById('UserListBtn') - .setAttribute('aria-expanded', isExpanded); - + let toggled = (this.props.isExpanded == false) ? true : false; + this.props.setToggleState(toggled); this.props.toggleUserList(); } @@ -68,7 +60,7 @@ class NavBar extends Component { } render() { - const { hasUnreadMessages, beingRecorded } = this.props; + const { hasUnreadMessages, beingRecorded, isExpanded } = this.props; let toggleBtnClasses = {}; toggleBtnClasses[styles.btn] = true; @@ -85,8 +77,7 @@ class NavBar extends Component { label={'User-List Toggle'} icon={'user'} className={cx(toggleBtnClasses)} - aria-expanded="false" - id="UserListBtn" + aria-expanded={isExpanded} />
diff --git a/bigbluebutton-html5/imports/ui/components/nav-bar/container.jsx b/bigbluebutton-html5/imports/ui/components/nav-bar/container.jsx index b822921af8..aab3dd655f 100755 --- a/bigbluebutton-html5/imports/ui/components/nav-bar/container.jsx +++ b/bigbluebutton-html5/imports/ui/components/nav-bar/container.jsx @@ -1,14 +1,13 @@ import React, { Component, PropTypes } from 'react'; import { createContainer } from 'meteor/react-meteor-data'; import { withRouter } from 'react-router'; - import Meetings from '/imports/api/meetings'; import Auth from '/imports/ui/services/auth'; import userListService from '../user-list/service'; import ChatService from '../chat/service'; import Service from './service'; import { meetingIsBreakout } from '/imports/ui/components/app/service'; - +import LocalStorage from '/imports/ui/services/storage/local.js'; import NavBar from './component'; const CHAT_CONFIG = Meteor.settings.public.chat; @@ -19,6 +18,10 @@ class NavBarContainer extends Component { super(props); } + componentWillUnmount() { + LocalStorage.removeItem('bbb.toggleUserList.isExpanded'); + } + render() { return ( @@ -29,6 +32,14 @@ class NavBarContainer extends Component { } export default withRouter(createContainer(({ location, router }) => { + + let toggleState = LocalStorage.getItem('bbb.toggleUserList.isExpanded'); + let isExpanded = (!toggleState) ? false : toggleState; + + const setToggleState = (state) => { + LocalStorage.setItem('bbb.toggleUserList.isExpanded', state); + }; + let meetingTitle; let meetingRecorded; @@ -60,6 +71,8 @@ export default withRouter(createContainer(({ location, router }) => { const currentUserId = Auth.userID; return { + setToggleState, + isExpanded, breakouts, currentUserId, meetingId,