Stopped rerendering CreatePost/CreateComment when blurring textbox (#5026)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
78cadf7d60
Коммит
7846036c77
@@ -67,9 +67,10 @@ export default class CreateComment extends React.Component {
|
|||||||
fileInfos: draft.fileInfos,
|
fileInfos: draft.fileInfos,
|
||||||
submitting: false,
|
submitting: false,
|
||||||
ctrlSend: PreferenceStore.getBool(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, 'send_on_ctrl_enter'),
|
ctrlSend: PreferenceStore.getBool(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, 'send_on_ctrl_enter'),
|
||||||
showPostDeletedModal: false,
|
showPostDeletedModal: false
|
||||||
lastBlurAt: 0
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.lastBlurAt = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
@@ -145,7 +146,7 @@ export default class CreateComment extends React.Component {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const fasterThanHumanWillClick = 150;
|
const fasterThanHumanWillClick = 150;
|
||||||
const forceFocus = (Date.now() - this.state.lastBlurAt < fasterThanHumanWillClick);
|
const forceFocus = (Date.now() - this.lastBlurAt < fasterThanHumanWillClick);
|
||||||
this.focusTextbox(forceFocus);
|
this.focusTextbox(forceFocus);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -405,7 +406,7 @@ export default class CreateComment extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
handleBlur() {
|
handleBlur() {
|
||||||
this.setState({lastBlurAt: Date.now()});
|
this.lastBlurAt = Date.now();
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
|||||||
@@ -76,9 +76,10 @@ export default class CreatePost extends React.Component {
|
|||||||
ctrlSend: PreferenceStore.getBool(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, 'send_on_ctrl_enter'),
|
ctrlSend: PreferenceStore.getBool(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, 'send_on_ctrl_enter'),
|
||||||
fullWidthTextBox: PreferenceStore.get(Preferences.CATEGORY_DISPLAY_SETTINGS, Preferences.CHANNEL_DISPLAY_MODE, Preferences.CHANNEL_DISPLAY_MODE_DEFAULT) === Preferences.CHANNEL_DISPLAY_MODE_FULL_SCREEN,
|
fullWidthTextBox: PreferenceStore.get(Preferences.CATEGORY_DISPLAY_SETTINGS, Preferences.CHANNEL_DISPLAY_MODE, Preferences.CHANNEL_DISPLAY_MODE_DEFAULT) === Preferences.CHANNEL_DISPLAY_MODE_FULL_SCREEN,
|
||||||
showTutorialTip: false,
|
showTutorialTip: false,
|
||||||
showPostDeletedModal: false,
|
showPostDeletedModal: false
|
||||||
lastBlurAt: 0
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.lastBlurAt = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
handlePostError(postError) {
|
handlePostError(postError) {
|
||||||
@@ -154,7 +155,8 @@ export default class CreatePost extends React.Component {
|
|||||||
this.setState({message: '', submitting: false, postError: null, fileInfos: [], serverError: null});
|
this.setState({message: '', submitting: false, postError: null, fileInfos: [], serverError: null});
|
||||||
|
|
||||||
const fasterThanHumanWillClick = 150;
|
const fasterThanHumanWillClick = 150;
|
||||||
const forceFocus = (Date.now() - this.state.lastBlurAt < fasterThanHumanWillClick);
|
const forceFocus = (Date.now() - this.lastBlurAt < fasterThanHumanWillClick);
|
||||||
|
|
||||||
this.focusTextbox(forceFocus);
|
this.focusTextbox(forceFocus);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -438,7 +440,7 @@ export default class CreatePost extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
handleBlur() {
|
handleBlur() {
|
||||||
this.setState({lastBlurAt: Date.now()});
|
this.lastBlurAt = Date.now();
|
||||||
}
|
}
|
||||||
|
|
||||||
showPostDeletedModal() {
|
showPostDeletedModal() {
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user