Set this.changingState back to false in ExtensionPage if an error occurs (#2558)

This commit is contained in:
David Sevilla Martín 2021-01-30 17:43:28 -05:00 committed by GitHub
parent 54d78f4630
commit eedb6d3752

View File

@ -59,6 +59,8 @@ export default class ExtensionPage extends Page {
}
header() {
const isEnabled = this.isEnabled();
return [
<div className="ExtensionPage-header">
<div className="container">
@ -75,10 +77,12 @@ export default class ExtensionPage extends Page {
</div>
<div className="helpText">{this.extension.description}</div>
<div className="ExtensionPage-headerItems">
<Switch state={this.isEnabled()} onchange={this.toggle.bind(this, this.extension.id)}>
{this.isEnabled(this.extension.id)
? app.translator.trans('core.admin.extension.enabled')
: app.translator.trans('core.admin.extension.disabled')}
<Switch
state={this.changingState ? !isEnabled : isEnabled}
loading={this.changingState}
onchange={this.toggle.bind(this, this.extension.id)}
>
{isEnabled ? app.translator.trans('core.admin.extension.enabled') : app.translator.trans('core.admin.extension.disabled')}
</Switch>
<aside className="ExtensionInfo">
<ul>{listItems(this.infoItems().toArray())}</ul>
@ -333,9 +337,7 @@ export default class ExtensionPage extends Page {
}
isEnabled() {
let isEnabled = isExtensionEnabled(this.extension.id);
return this.changingState ? !isEnabled : isEnabled;
return isExtensionEnabled(this.extension.id);
}
onerror(e) {
@ -346,6 +348,8 @@ export default class ExtensionPage extends Page {
app.modal.close();
}, 300); // Bootstrap's Modal.TRANSITION_DURATION is 300 ms.
this.changingState = false;
if (e.status !== 409) {
throw e;
}