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.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}
|
||||
|
||||
@@ -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
|
||||
};
|
||||
|
||||
Ссылка в новой задаче
Block a user