diff options
Diffstat (limited to 'webapp/components/sidebar_right.jsx')
-rw-r--r-- | webapp/components/sidebar_right.jsx | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/webapp/components/sidebar_right.jsx b/webapp/components/sidebar_right.jsx index 9e2fc32dd..3a2060bf2 100644 --- a/webapp/components/sidebar_right.jsx +++ b/webapp/components/sidebar_right.jsx @@ -8,6 +8,8 @@ import RhsThread from './rhs_thread.jsx'; import SearchStore from 'stores/search_store.jsx'; import PostStore from 'stores/post_store.jsx'; import UserStore from 'stores/user_store.jsx'; +import PreferenceStore from 'stores/preference_store.jsx'; +import Constants from 'utils/constants.jsx'; import * as Utils from 'utils/utils.jsx'; import React from 'react'; @@ -18,6 +20,7 @@ export default class SidebarRight extends React.Component { this.plScrolledToBottom = true; + this.onPreferenceChange = this.onPreferenceChange.bind(this); this.onSelectedChange = this.onSelectedChange.bind(this); this.onSearchChange = this.onSearchChange.bind(this); this.onUserChange = this.onUserChange.bind(this); @@ -30,25 +33,32 @@ export default class SidebarRight extends React.Component { isMentionSearch: SearchStore.getIsMentionSearch(), postRightVisible: !!PostStore.getSelectedPost(), fromSearch: false, - currentUser: UserStore.getCurrentUser() + currentUser: UserStore.getCurrentUser(), + useMilitaryTime: PreferenceStore.getBool(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, Constants.Preferences.USE_MILITARY_TIME, false) }; } + componentDidMount() { SearchStore.addSearchChangeListener(this.onSearchChange); PostStore.addSelectedPostChangeListener(this.onSelectedChange); SearchStore.addShowSearchListener(this.onShowSearch); UserStore.addChangeListener(this.onUserChange); + PreferenceStore.addChangeListener(this.onPreferenceChange); this.doStrangeThings(); } + componentWillUnmount() { SearchStore.removeSearchChangeListener(this.onSearchChange); PostStore.removeSelectedPostChangeListener(this.onSelectedChange); SearchStore.removeShowSearchListener(this.onShowSearch); UserStore.removeChangeListener(this.onUserChange); + PreferenceStore.removeChangeListener(this.onPreferenceChange); } + shouldComponentUpdate(nextProps, nextState) { return !Utils.areObjectsEqual(nextState, this.state); } + componentWillUpdate(nextProps, nextState) { const isOpen = this.state.searchVisible || this.state.postRightVisible; const willOpen = nextState.searchVisible || nextState.postRightVisible; @@ -57,6 +67,7 @@ export default class SidebarRight extends React.Component { PostStore.jumpPostsViewSidebarOpen(); } } + doStrangeThings() { // We should have a better way to do this stuff // Hence the function name. @@ -81,26 +92,37 @@ export default class SidebarRight extends React.Component { }, 500);*/ return null; } + componentDidUpdate() { this.doStrangeThings(); } + + onPreferenceChange() { + this.setState({ + useMilitaryTime: PreferenceStore.getBool(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, Constants.Preferences.USE_MILITARY_TIME, false) + }); + } + onSelectedChange(fromSearch) { this.setState({ postRightVisible: !!PostStore.getSelectedPost(), fromSearch }); } + onSearchChange() { this.setState({ searchVisible: SearchStore.getSearchResults() !== null, isMentionSearch: SearchStore.getIsMentionSearch() }); } + onUserChange() { this.setState({ currentUser: UserStore.getCurrentUser() }); } + onShowSearch() { if (!this.state.searchVisible) { this.setState({ @@ -108,17 +130,24 @@ export default class SidebarRight extends React.Component { }); } } + render() { let content = null; if (this.state.searchVisible) { - content = <SearchResults isMentionSearch={this.state.isMentionSearch}/>; + content = ( + <SearchResults + isMentionSearch={this.state.isMentionSearch} + useMilitaryTime={this.state.useMilitaryTime} + /> + ); } else if (this.state.postRightVisible) { content = ( <RhsThread fromSearch={this.state.fromSearch} isMentionSearch={this.state.isMentionSearch} currentUser={this.state.currentUser} + useMilitaryTime={this.state.useMilitaryTime} /> ); } |