clean up alias validator timer
This commit is contained in:
@@ -79,6 +79,7 @@ class TopicDescEdit extends React.Component {
|
|||||||
this.handleDescriptionUpdate = this.handleDescriptionUpdate.bind(this);
|
this.handleDescriptionUpdate = this.handleDescriptionUpdate.bind(this);
|
||||||
this.handleTagsUpdated = this.handleTagsUpdated.bind(this);
|
this.handleTagsUpdated = this.handleTagsUpdated.bind(this);
|
||||||
this.validateAlias = this.validateAlias.bind(this);
|
this.validateAlias = this.validateAlias.bind(this);
|
||||||
|
this.cancelValidator = this.cancelValidator.bind(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
@@ -90,6 +91,7 @@ class TopicDescEdit extends React.Component {
|
|||||||
componentWillUnmount() {
|
componentWillUnmount() {
|
||||||
const topic = this.props.tinode.getTopic(this.props.topic);
|
const topic = this.props.tinode.getTopic(this.props.topic);
|
||||||
topic.onTagsUpdated = this.previousOnTags;
|
topic.onTagsUpdated = this.previousOnTags;
|
||||||
|
this.cancelValidator();
|
||||||
}
|
}
|
||||||
|
|
||||||
tnNewTags(tags) {
|
tnNewTags(tags) {
|
||||||
@@ -187,11 +189,7 @@ class TopicDescEdit extends React.Component {
|
|||||||
|
|
||||||
validateAlias(alias) {
|
validateAlias(alias) {
|
||||||
// Reset pending delayed check.
|
// Reset pending delayed check.
|
||||||
if (this.aliasCheckTimer) {
|
this.cancelValidator();
|
||||||
this.aliasCheckPromise.reject(null);
|
|
||||||
clearTimeout(this.aliasCheckTimer);
|
|
||||||
this.aliasCheckTimer = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!alias) {
|
if (!alias) {
|
||||||
this.setState({aliasError: ''});
|
this.setState({aliasError: ''});
|
||||||
@@ -231,6 +229,15 @@ class TopicDescEdit extends React.Component {
|
|||||||
return validationPromise;
|
return validationPromise;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cancelValidator() {
|
||||||
|
// Reset pending delayed check.
|
||||||
|
if (this.aliasCheckTimer) {
|
||||||
|
clearTimeout(this.aliasCheckTimer);
|
||||||
|
this.aliasCheckTimer = null;
|
||||||
|
this.aliasCheckPromise.reject(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
handleTagsUpdated(tags) {
|
handleTagsUpdated(tags) {
|
||||||
// Check if tags have actually changed.
|
// Check if tags have actually changed.
|
||||||
if (arrayEqual(this.state.tags.slice(0), tags.slice(0))) {
|
if (arrayEqual(this.state.tags.slice(0), tags.slice(0))) {
|
||||||
|
|||||||
+10
-5
@@ -21139,6 +21139,7 @@ class TopicDescEdit extends (react__WEBPACK_IMPORTED_MODULE_0___default().Compon
|
|||||||
this.handleDescriptionUpdate = this.handleDescriptionUpdate.bind(this);
|
this.handleDescriptionUpdate = this.handleDescriptionUpdate.bind(this);
|
||||||
this.handleTagsUpdated = this.handleTagsUpdated.bind(this);
|
this.handleTagsUpdated = this.handleTagsUpdated.bind(this);
|
||||||
this.validateAlias = this.validateAlias.bind(this);
|
this.validateAlias = this.validateAlias.bind(this);
|
||||||
|
this.cancelValidator = this.cancelValidator.bind(this);
|
||||||
}
|
}
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
const topic = this.props.tinode.getTopic(this.props.topic);
|
const topic = this.props.tinode.getTopic(this.props.topic);
|
||||||
@@ -21148,6 +21149,7 @@ class TopicDescEdit extends (react__WEBPACK_IMPORTED_MODULE_0___default().Compon
|
|||||||
componentWillUnmount() {
|
componentWillUnmount() {
|
||||||
const topic = this.props.tinode.getTopic(this.props.topic);
|
const topic = this.props.tinode.getTopic(this.props.topic);
|
||||||
topic.onTagsUpdated = this.previousOnTags;
|
topic.onTagsUpdated = this.previousOnTags;
|
||||||
|
this.cancelValidator();
|
||||||
}
|
}
|
||||||
tnNewTags(tags) {
|
tnNewTags(tags) {
|
||||||
this.setState({
|
this.setState({
|
||||||
@@ -21252,11 +21254,7 @@ class TopicDescEdit extends (react__WEBPACK_IMPORTED_MODULE_0___default().Compon
|
|||||||
this.handleTagsUpdated(tags);
|
this.handleTagsUpdated(tags);
|
||||||
}
|
}
|
||||||
validateAlias(alias) {
|
validateAlias(alias) {
|
||||||
if (this.aliasCheckTimer) {
|
this.cancelValidator();
|
||||||
this.aliasCheckPromise.reject(null);
|
|
||||||
clearTimeout(this.aliasCheckTimer);
|
|
||||||
this.aliasCheckTimer = null;
|
|
||||||
}
|
|
||||||
if (!alias) {
|
if (!alias) {
|
||||||
this.setState({
|
this.setState({
|
||||||
aliasError: ''
|
aliasError: ''
|
||||||
@@ -21300,6 +21298,13 @@ class TopicDescEdit extends (react__WEBPACK_IMPORTED_MODULE_0___default().Compon
|
|||||||
}, ALIAS_AVAILABILITY_CHECK_DELAY);
|
}, ALIAS_AVAILABILITY_CHECK_DELAY);
|
||||||
return validationPromise;
|
return validationPromise;
|
||||||
}
|
}
|
||||||
|
cancelValidator() {
|
||||||
|
if (this.aliasCheckTimer) {
|
||||||
|
clearTimeout(this.aliasCheckTimer);
|
||||||
|
this.aliasCheckTimer = null;
|
||||||
|
this.aliasCheckPromise.reject(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
handleTagsUpdated(tags) {
|
handleTagsUpdated(tags) {
|
||||||
if ((0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_9__.arrayEqual)(this.state.tags.slice(0), tags.slice(0))) {
|
if ((0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_9__.arrayEqual)(this.state.tags.slice(0), tags.slice(0))) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user