mirror of
https://github.com/kremalicious/umami.git
synced 2024-12-18 07:13:37 +01:00
Ability to unregister umami
This commit is contained in:
parent
8727dbf282
commit
2ea91aaabf
@ -39,12 +39,14 @@ export const put = (url, params) => apiRequest('put', url, JSON.stringify(params
|
||||
|
||||
export const hook = (_this, method, callback) => {
|
||||
const orig = _this[method];
|
||||
|
||||
return (...args) => {
|
||||
_this[method] = (...args) => {
|
||||
callback.apply(null, args);
|
||||
|
||||
return orig.apply(_this, args);
|
||||
};
|
||||
|
||||
return () => {
|
||||
_this[method] = orig;
|
||||
};
|
||||
};
|
||||
|
||||
export const doNotTrack = () => {
|
||||
|
@ -73,8 +73,8 @@ import { removeTrailingSlash } from '../lib/url';
|
||||
pageView();
|
||||
};
|
||||
|
||||
history.pushState = hook(history, 'pushState', handlePush);
|
||||
history.replaceState = hook(history, 'replaceState', handlePush);
|
||||
const pushStateUnhook = hook(history, 'pushState', handlePush);
|
||||
const replaceStateUnhook = hook(history, 'replaceState', handlePush);
|
||||
|
||||
/* Handle events */
|
||||
|
||||
@ -106,4 +106,12 @@ import { removeTrailingSlash } from '../lib/url';
|
||||
if (!window.umami) {
|
||||
window.umami = event_value => collect('event', { event_type: 'custom', event_value });
|
||||
}
|
||||
|
||||
if (!window.umamiUnregister) {
|
||||
window.umamiUnregister = () => {
|
||||
pushStateUnhook();
|
||||
replaceStateUnhook();
|
||||
removeEvents();
|
||||
};
|
||||
}
|
||||
})(window);
|
||||
|
Loading…
Reference in New Issue
Block a user