chore(async-table): mutation observer is handeled in event manager
This commit is contained in:
parent
9843cdf3c4
commit
ad3bf94c20
@ -240,17 +240,7 @@ export class AsyncTable {
|
||||
const debouncedUpdateFromTableFilter = throttle((() => this._updateFromTableFilter(tableFilterForm)).bind(this), FILTER_DEBOUNCE, { leading: true, trailing: false });
|
||||
|
||||
[...this._tableFilterInputs.search, ...this._tableFilterInputs.input].forEach((input) => {
|
||||
const submitLockObserver = new MutationObserver((mutations, observer) => {
|
||||
for (const mutation of mutations) {
|
||||
// if the submit lock has been released, trigger an update and disconnect this observer
|
||||
if (mutation.target === input && mutation.attributeName === ATTR_SUBMIT_LOCKED && mutation.oldValue === 'true' && mutation.target.getAttribute(mutation.attributeName) === 'false') {
|
||||
debouncedUpdateFromTableFilter();
|
||||
observer.disconnect();
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
this._cancelPendingUpdates.push(() => { submitLockObserver.disconnect(); });
|
||||
this._cancelPendingUpdates.push(() => { this._eventManager.removeAllObserversFromUtil();});
|
||||
|
||||
const debouncedInput = debounce(() => {
|
||||
const submitLockedAttr = input.getAttribute(ATTR_SUBMIT_LOCKED);
|
||||
@ -259,7 +249,16 @@ export class AsyncTable {
|
||||
debouncedUpdateFromTableFilter();
|
||||
} else if (submitLockedAttr === 'true') {
|
||||
// observe the submit lock of the input element
|
||||
submitLockObserver.observe(input, {
|
||||
this._eventManager.registerNewMutationObserver(((mutations, observer) => {
|
||||
for (const mutation of mutations) {
|
||||
// if the submit lock has been released, trigger an update and disconnect this observer
|
||||
if (mutation.target === input && mutation.attributeName === ATTR_SUBMIT_LOCKED && mutation.oldValue === 'true' && mutation.target.getAttribute(mutation.attributeName) === 'false') {
|
||||
debouncedUpdateFromTableFilter();
|
||||
observer.disconnect();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}).bind(this), input, {
|
||||
attributes: true,
|
||||
attributeFilter: [ATTR_SUBMIT_LOCKED],
|
||||
attributeOldValue: true,
|
||||
|
||||
Reference in New Issue
Block a user