better-auth
Version:
The most comprehensive authentication framework for TypeScript.
32 lines (31 loc) • 1.08 kB
JavaScript
//#region src/client/focus-manager.ts
const kFocusManager = Symbol.for("better-auth:focus-manager");
var WindowFocusManager = class {
listeners = /* @__PURE__ */ new Set();
subscribe(listener) {
this.listeners.add(listener);
return () => {
this.listeners.delete(listener);
};
}
setFocused(focused) {
this.listeners.forEach((listener) => listener(focused));
}
setup() {
if (typeof window === "undefined" || typeof document === "undefined" || typeof window.addEventListener === "undefined") return () => {};
const visibilityHandler = () => {
if (document.visibilityState === "visible") this.setFocused(true);
};
document.addEventListener("visibilitychange", visibilityHandler, false);
return () => {
document.removeEventListener("visibilitychange", visibilityHandler, false);
};
}
};
function getGlobalFocusManager() {
if (!globalThis[kFocusManager]) globalThis[kFocusManager] = new WindowFocusManager();
return globalThis[kFocusManager];
}
//#endregion
export { getGlobalFocusManager, kFocusManager };
//# sourceMappingURL=focus-manager.mjs.map