Handle enable/disabled only when changed

This commit is contained in:
Alex P 2023-09-11 10:35:20 +03:00
parent 294e14d30b
commit bf64309bf5
No known key found for this signature in database
GPG key ID: 54487A734A204D71
2 changed files with 16 additions and 3 deletions

View file

@ -1,4 +1,4 @@
import {disable, enable} from "./ButtonDisabler";
import {disable, enable, isDisabled} from "./ButtonDisabler";
import {hide, show} from "./Hiding";
/**
@ -19,15 +19,18 @@ export default class BootstrapHelper {
hide(options.messagesWrapper);
}
const wasDisabled = isDisabled(options.wrapper);
const shouldEnable = bs.shouldEnable();
// Handle enable / disable
if (bs.shouldEnable()) {
if (shouldEnable && wasDisabled) {
bs.renderer.enableSmartButtons(options.wrapper);
enable(options.wrapper);
if (!options.skipMessages) {
enable(options.messagesWrapper);
}
} else {
} else if (!shouldEnable && !wasDisabled) {
bs.renderer.disableSmartButtons(options.wrapper);
disable(options.wrapper, options.formSelector || null);

View file

@ -47,6 +47,16 @@ export const setEnabled = (selectorOrElement, enable, form = null) => {
}
};
export const isDisabled = (selectorOrElement) => {
const element = getElement(selectorOrElement);
if (!element) {
return false;
}
return jQuery(element).hasClass('ppcp-disabled');
};
export const disable = (selectorOrElement, form = null) => {
setEnabled(selectorOrElement, false, form);
};