@wordpress/edit-post
Version:
Edit Post module for WordPress.
36 lines (30 loc) • 912 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.onChangeListener = void 0;
/**
* Given a selector returns a functions that returns the listener only
* if the returned value from the selector changes.
*
* @param {Function} selector Selector.
* @param {Function} listener Listener.
* @param {boolean} initial Flags whether listener should be invoked on
* initial call.
* @return {Function} Listener creator.
*/
const onChangeListener = (selector, listener, initial = false) => {
let previousValue = selector();
if (initial) {
listener(selector());
}
return () => {
const selectedValue = selector();
if (selectedValue !== previousValue) {
previousValue = selectedValue;
listener(selectedValue);
}
};
};
exports.onChangeListener = onChangeListener;
//# sourceMappingURL=utils.js.map