/** * @namespace javascripts.pushr.dispatchers.index * @description All push and turbo dispatchers are added here */import { pushrDispatcher, leavePageDispatcher } from "~/javascripts/pushr/dispatchers/rum"export const pushrDispatchers = (pushrObject) => pushrDispatcher(pushrObject)export const eventListenerDispatchers = () => { /** * Dispatch all available metrics whenever the page is backgrounded or unloaded. */ window.addEventListener("visibilitychange", () => { if (document.visibilityState === "hidden") leavePageDispatcher() }) /** * Safari does not reliably fire the `visibilitychange` event when the page is being unloaded. * Therefore also dispatch any metrics in the dispatcher on the `pagehide` event **/ window.addEventListener("pagehide", () => leavePageDispatcher())}