diff options
Diffstat (limited to 'web/react')
-rw-r--r-- | web/react/components/center_panel.jsx | 13 | ||||
-rw-r--r-- | web/react/components/channel_header.jsx | 13 | ||||
-rw-r--r-- | web/react/stores/user_store.jsx | 50 |
3 files changed, 23 insertions, 53 deletions
diff --git a/web/react/components/center_panel.jsx b/web/react/components/center_panel.jsx index 6cb749075..97c615768 100644 --- a/web/react/components/center_panel.jsx +++ b/web/react/components/center_panel.jsx @@ -27,20 +27,24 @@ export default class CenterPanel extends React.Component { this.onPreferenceChange = this.onPreferenceChange.bind(this); this.onChannelChange = this.onChannelChange.bind(this); + this.onUserChange = this.onUserChange.bind(this); const tutorialStep = PreferenceStore.getInt(Preferences.TUTORIAL_STEP, UserStore.getCurrentId(), 999); this.state = { showTutorialScreens: tutorialStep === TutorialSteps.INTRO_SCREENS, - showPostFocus: ChannelStore.getPostMode() === ChannelStore.POST_MODE_FOCUS + showPostFocus: ChannelStore.getPostMode() === ChannelStore.POST_MODE_FOCUS, + user: UserStore.getCurrentUser() }; } componentDidMount() { PreferenceStore.addChangeListener(this.onPreferenceChange); ChannelStore.addChangeListener(this.onChannelChange); + UserStore.addChangeListener(this.onUserChange); } componentWillUnmount() { PreferenceStore.removeChangeListener(this.onPreferenceChange); ChannelStore.removeChangeListener(this.onChannelChange); + UserStore.removeChangeListener(this.onUserChange); } onPreferenceChange() { const tutorialStep = PreferenceStore.getInt(Preferences.TUTORIAL_STEP, UserStore.getCurrentId(), 999); @@ -49,6 +53,9 @@ export default class CenterPanel extends React.Component { onChannelChange() { this.setState({showPostFocus: ChannelStore.getPostMode() === ChannelStore.POST_MODE_FOCUS}); } + onUserChange() { + this.setState({user: UserStore.getCurrentUser()}); + } render() { const channel = ChannelStore.getCurrent(); var handleClick = null; @@ -108,7 +115,9 @@ export default class CenterPanel extends React.Component { className='app__content' > <div id='channel-header'> - <ChannelHeader/> + <ChannelHeader + user={this.state.user} + /> </div> {postsContainer} {createPost} diff --git a/web/react/components/channel_header.jsx b/web/react/components/channel_header.jsx index b5eb546cf..3d0246a96 100644 --- a/web/react/components/channel_header.jsx +++ b/web/react/components/channel_header.jsx @@ -51,7 +51,6 @@ export default class ChannelHeader extends React.Component { return { channel: ChannelStore.getCurrent(), memberChannel: ChannelStore.getCurrentMember(), - memberTeam: UserStore.getCurrentUser(), users: extraInfo.members, userCount: extraInfo.member_count, searchVisible: SearchStore.getSearchResults() !== null @@ -61,14 +60,12 @@ export default class ChannelHeader extends React.Component { ChannelStore.addChangeListener(this.onListenerChange); ChannelStore.addExtraInfoChangeListener(this.onListenerChange); SearchStore.addSearchChangeListener(this.onListenerChange); - UserStore.addChangeListener(this.onListenerChange); PreferenceStore.addChangeListener(this.onListenerChange); } componentWillUnmount() { ChannelStore.removeChangeListener(this.onListenerChange); ChannelStore.removeExtraInfoChangeListener(this.onListenerChange); SearchStore.removeSearchChangeListener(this.onListenerChange); - UserStore.removeChangeListener(this.onListenerChange); PreferenceStore.removeChangeListener(this.onListenerChange); } onListenerChange() { @@ -97,11 +94,11 @@ export default class ChannelHeader extends React.Component { searchMentions(e) { e.preventDefault(); - const user = UserStore.getCurrentUser(); + const user = this.props.user; let terms = ''; if (user.notify_props && user.notify_props.mention_keys) { - const termKeys = UserStore.getCurrentMentionKeys(); + const termKeys = UserStore.getMentionKeys(user.id); if (user.notify_props.all === 'true' && termKeys.indexOf('@all') !== -1) { termKeys.splice(termKeys.indexOf('@all'), 1); @@ -150,7 +147,7 @@ export default class ChannelHeader extends React.Component { </Popover> ); let channelTitle = channel.display_name; - const currentId = UserStore.getCurrentId(); + const currentId = this.prop.user.id; const isAdmin = Utils.isAdmin(this.state.memberChannel.roles) || Utils.isAdmin(this.state.memberTeam.roles); const isDirect = (this.state.channel.type === 'D'); @@ -474,3 +471,7 @@ export default class ChannelHeader extends React.Component { ); } } + +ChannelHeader.propTypes = { + user: React.PropTypes.object.isRequired +}; diff --git a/web/react/stores/user_store.jsx b/web/react/stores/user_store.jsx index dd60e166f..226d578df 100644 --- a/web/react/stores/user_store.jsx +++ b/web/react/stores/user_store.jsx @@ -17,50 +17,6 @@ const CHANGE_EVENT_STATUSES = 'change_statuses'; class UserStoreClass extends EventEmitter { constructor() { super(); - - this.emitChange = this.emitChange.bind(this); - this.addChangeListener = this.addChangeListener.bind(this); - this.removeChangeListener = this.removeChangeListener.bind(this); - this.emitSessionsChange = this.emitSessionsChange.bind(this); - this.addSessionsChangeListener = this.addSessionsChangeListener.bind(this); - this.removeSessionsChangeListener = this.removeSessionsChangeListener.bind(this); - this.emitAuditsChange = this.emitAuditsChange.bind(this); - this.addAuditsChangeListener = this.addAuditsChangeListener.bind(this); - this.removeAuditsChangeListener = this.removeAuditsChangeListener.bind(this); - this.emitTeamsChange = this.emitTeamsChange.bind(this); - this.addTeamsChangeListener = this.addTeamsChangeListener.bind(this); - this.removeTeamsChangeListener = this.removeTeamsChangeListener.bind(this); - this.emitStatusesChange = this.emitStatusesChange.bind(this); - this.addStatusesChangeListener = this.addStatusesChangeListener.bind(this); - this.removeStatusesChangeListener = this.removeStatusesChangeListener.bind(this); - this.getCurrentId = this.getCurrentId.bind(this); - this.getCurrentUser = this.getCurrentUser.bind(this); - this.setCurrentUser = this.setCurrentUser.bind(this); - this.getLastEmail = this.getLastEmail.bind(this); - this.setLastEmail = this.setLastEmail.bind(this); - this.getLastUsername = this.getLastUsername.bind(this); - this.setLastUsername = this.setLastUsername.bind(this); - this.hasProfile = this.hasProfile.bind(this); - this.getProfile = this.getProfile.bind(this); - this.getProfileByUsername = this.getProfileByUsername.bind(this); - this.getProfilesUsernameMap = this.getProfilesUsernameMap.bind(this); - this.getProfiles = this.getProfiles.bind(this); - this.getActiveOnlyProfiles = this.getActiveOnlyProfiles.bind(this); - this.getActiveOnlyProfileList = this.getActiveOnlyProfileList.bind(this); - this.saveProfile = this.saveProfile.bind(this); - this.setSessions = this.setSessions.bind(this); - this.getSessions = this.getSessions.bind(this); - this.setAudits = this.setAudits.bind(this); - this.getAudits = this.getAudits.bind(this); - this.setTeams = this.setTeams.bind(this); - this.getTeams = this.getTeams.bind(this); - this.getCurrentMentionKeys = this.getCurrentMentionKeys.bind(this); - this.setStatuses = this.setStatuses.bind(this); - this.pSetStatuses = this.pSetStatuses.bind(this); - this.setStatus = this.setStatus.bind(this); - this.getStatuses = this.getStatuses.bind(this); - this.getStatus = this.getStatus.bind(this); - this.profileCache = null; } @@ -277,7 +233,11 @@ class UserStoreClass extends EventEmitter { } getCurrentMentionKeys() { - var user = this.getCurrentUser(); + return this.getMentionKeys(this.getCurrentId()); + } + + getMentionKeys(id) { + var user = this.getProfile(id); var keys = []; |