Refactor user store listener out of channel header
Этот коммит содержится в:
@@ -27,20 +27,24 @@ export default class CenterPanel extends React.Component {
|
|||||||
|
|
||||||
this.onPreferenceChange = this.onPreferenceChange.bind(this);
|
this.onPreferenceChange = this.onPreferenceChange.bind(this);
|
||||||
this.onChannelChange = this.onChannelChange.bind(this);
|
this.onChannelChange = this.onChannelChange.bind(this);
|
||||||
|
this.onUserChange = this.onUserChange.bind(this);
|
||||||
|
|
||||||
const tutorialStep = PreferenceStore.getInt(Preferences.TUTORIAL_STEP, UserStore.getCurrentId(), 999);
|
const tutorialStep = PreferenceStore.getInt(Preferences.TUTORIAL_STEP, UserStore.getCurrentId(), 999);
|
||||||
this.state = {
|
this.state = {
|
||||||
showTutorialScreens: tutorialStep === TutorialSteps.INTRO_SCREENS,
|
showTutorialScreens: tutorialStep === TutorialSteps.INTRO_SCREENS,
|
||||||
showPostFocus: ChannelStore.getPostMode() === ChannelStore.POST_MODE_FOCUS
|
showPostFocus: ChannelStore.getPostMode() === ChannelStore.POST_MODE_FOCUS,
|
||||||
|
user: UserStore.getCurrentUser()
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
PreferenceStore.addChangeListener(this.onPreferenceChange);
|
PreferenceStore.addChangeListener(this.onPreferenceChange);
|
||||||
ChannelStore.addChangeListener(this.onChannelChange);
|
ChannelStore.addChangeListener(this.onChannelChange);
|
||||||
|
UserStore.addChangeListener(this.onUserChange);
|
||||||
}
|
}
|
||||||
componentWillUnmount() {
|
componentWillUnmount() {
|
||||||
PreferenceStore.removeChangeListener(this.onPreferenceChange);
|
PreferenceStore.removeChangeListener(this.onPreferenceChange);
|
||||||
ChannelStore.removeChangeListener(this.onChannelChange);
|
ChannelStore.removeChangeListener(this.onChannelChange);
|
||||||
|
UserStore.removeChangeListener(this.onUserChange);
|
||||||
}
|
}
|
||||||
onPreferenceChange() {
|
onPreferenceChange() {
|
||||||
const tutorialStep = PreferenceStore.getInt(Preferences.TUTORIAL_STEP, UserStore.getCurrentId(), 999);
|
const tutorialStep = PreferenceStore.getInt(Preferences.TUTORIAL_STEP, UserStore.getCurrentId(), 999);
|
||||||
@@ -49,6 +53,9 @@ export default class CenterPanel extends React.Component {
|
|||||||
onChannelChange() {
|
onChannelChange() {
|
||||||
this.setState({showPostFocus: ChannelStore.getPostMode() === ChannelStore.POST_MODE_FOCUS});
|
this.setState({showPostFocus: ChannelStore.getPostMode() === ChannelStore.POST_MODE_FOCUS});
|
||||||
}
|
}
|
||||||
|
onUserChange() {
|
||||||
|
this.setState({user: UserStore.getCurrentUser()});
|
||||||
|
}
|
||||||
render() {
|
render() {
|
||||||
const channel = ChannelStore.getCurrent();
|
const channel = ChannelStore.getCurrent();
|
||||||
var handleClick = null;
|
var handleClick = null;
|
||||||
@@ -108,7 +115,9 @@ export default class CenterPanel extends React.Component {
|
|||||||
className='app__content'
|
className='app__content'
|
||||||
>
|
>
|
||||||
<div id='channel-header'>
|
<div id='channel-header'>
|
||||||
<ChannelHeader/>
|
<ChannelHeader
|
||||||
|
user={this.state.user}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
{postsContainer}
|
{postsContainer}
|
||||||
{createPost}
|
{createPost}
|
||||||
|
|||||||
@@ -51,7 +51,6 @@ export default class ChannelHeader extends React.Component {
|
|||||||
return {
|
return {
|
||||||
channel: ChannelStore.getCurrent(),
|
channel: ChannelStore.getCurrent(),
|
||||||
memberChannel: ChannelStore.getCurrentMember(),
|
memberChannel: ChannelStore.getCurrentMember(),
|
||||||
memberTeam: UserStore.getCurrentUser(),
|
|
||||||
users: extraInfo.members,
|
users: extraInfo.members,
|
||||||
userCount: extraInfo.member_count,
|
userCount: extraInfo.member_count,
|
||||||
searchVisible: SearchStore.getSearchResults() !== null
|
searchVisible: SearchStore.getSearchResults() !== null
|
||||||
@@ -61,14 +60,12 @@ export default class ChannelHeader extends React.Component {
|
|||||||
ChannelStore.addChangeListener(this.onListenerChange);
|
ChannelStore.addChangeListener(this.onListenerChange);
|
||||||
ChannelStore.addExtraInfoChangeListener(this.onListenerChange);
|
ChannelStore.addExtraInfoChangeListener(this.onListenerChange);
|
||||||
SearchStore.addSearchChangeListener(this.onListenerChange);
|
SearchStore.addSearchChangeListener(this.onListenerChange);
|
||||||
UserStore.addChangeListener(this.onListenerChange);
|
|
||||||
PreferenceStore.addChangeListener(this.onListenerChange);
|
PreferenceStore.addChangeListener(this.onListenerChange);
|
||||||
}
|
}
|
||||||
componentWillUnmount() {
|
componentWillUnmount() {
|
||||||
ChannelStore.removeChangeListener(this.onListenerChange);
|
ChannelStore.removeChangeListener(this.onListenerChange);
|
||||||
ChannelStore.removeExtraInfoChangeListener(this.onListenerChange);
|
ChannelStore.removeExtraInfoChangeListener(this.onListenerChange);
|
||||||
SearchStore.removeSearchChangeListener(this.onListenerChange);
|
SearchStore.removeSearchChangeListener(this.onListenerChange);
|
||||||
UserStore.removeChangeListener(this.onListenerChange);
|
|
||||||
PreferenceStore.removeChangeListener(this.onListenerChange);
|
PreferenceStore.removeChangeListener(this.onListenerChange);
|
||||||
}
|
}
|
||||||
onListenerChange() {
|
onListenerChange() {
|
||||||
@@ -97,11 +94,11 @@ export default class ChannelHeader extends React.Component {
|
|||||||
searchMentions(e) {
|
searchMentions(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
const user = UserStore.getCurrentUser();
|
const user = this.props.user;
|
||||||
|
|
||||||
let terms = '';
|
let terms = '';
|
||||||
if (user.notify_props && user.notify_props.mention_keys) {
|
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) {
|
if (user.notify_props.all === 'true' && termKeys.indexOf('@all') !== -1) {
|
||||||
termKeys.splice(termKeys.indexOf('@all'), 1);
|
termKeys.splice(termKeys.indexOf('@all'), 1);
|
||||||
@@ -150,7 +147,7 @@ export default class ChannelHeader extends React.Component {
|
|||||||
</Popover>
|
</Popover>
|
||||||
);
|
);
|
||||||
let channelTitle = channel.display_name;
|
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 isAdmin = Utils.isAdmin(this.state.memberChannel.roles) || Utils.isAdmin(this.state.memberTeam.roles);
|
||||||
const isDirect = (this.state.channel.type === 'D');
|
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
|
||||||
|
};
|
||||||
|
|||||||
@@ -17,50 +17,6 @@ const CHANGE_EVENT_STATUSES = 'change_statuses';
|
|||||||
class UserStoreClass extends EventEmitter {
|
class UserStoreClass extends EventEmitter {
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
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;
|
this.profileCache = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -277,7 +233,11 @@ class UserStoreClass extends EventEmitter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getCurrentMentionKeys() {
|
getCurrentMentionKeys() {
|
||||||
var user = this.getCurrentUser();
|
return this.getMentionKeys(this.getCurrentId());
|
||||||
|
}
|
||||||
|
|
||||||
|
getMentionKeys(id) {
|
||||||
|
var user = this.getProfile(id);
|
||||||
|
|
||||||
var keys = [];
|
var keys = [];
|
||||||
|
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user