@ekwoka/alpine-history
Version:
Sync Component an Store values to the URL Search Params!!!
28 lines (26 loc) • 889 B
JavaScript
const stateUpdateHandlers = [];
const onURLChange = (callback) => stateUpdateHandlers.push(callback);
let skip = false;
const untrack = (cb) => {
skip = true;
cb();
skip = false;
};
const observeHistory = (injectHistory = history) => {
["replaceState" /* replace */, "pushState" /* push */].forEach((method) => {
const original = injectHistory[method];
injectHistory[method] = (data, title, url) => {
original.call(injectHistory, data, title, url);
if (skip)
return;
stateUpdateHandlers.forEach((handler) => handler(new URL(location.href)));
};
});
};
var UpdateMethod = /* @__PURE__ */ ((UpdateMethod2) => {
UpdateMethod2["replace"] = "replaceState";
UpdateMethod2["push"] = "pushState";
return UpdateMethod2;
})(UpdateMethod || {});
export { UpdateMethod, observeHistory, onURLChange, untrack };
//# sourceMappingURL=history.js.map