refactor: share dom ready
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
export {};
|
export {};
|
||||||
|
|
||||||
|
import { onReady } from "./utils";
|
||||||
|
|
||||||
type ToastFn = (opts: { message: string; duration?: number }) => void;
|
type ToastFn = (opts: { message: string; duration?: number }) => void;
|
||||||
|
|
||||||
const getToast = (): ToastFn | null => {
|
const getToast = (): ToastFn | null => {
|
||||||
@@ -33,15 +35,6 @@ const getTriggerFromHtmxEvent = (event: Event): Element | null => {
|
|||||||
return detail.detail?.elt ?? null;
|
return detail.detail?.elt ?? null;
|
||||||
};
|
};
|
||||||
|
|
||||||
const onReady = (fn: () => void): void => {
|
|
||||||
if (document.readyState === "loading") {
|
|
||||||
document.addEventListener("DOMContentLoaded", fn, { once: true });
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
fn();
|
|
||||||
};
|
|
||||||
|
|
||||||
onReady(() => {
|
onReady(() => {
|
||||||
document.addEventListener("htmx:beforeRequest", (event) => {
|
document.addEventListener("htmx:beforeRequest", (event) => {
|
||||||
setBusy(getTriggerFromHtmxEvent(event), true);
|
setBusy(getTriggerFromHtmxEvent(event), true);
|
||||||
|
|||||||
@@ -1,13 +1,6 @@
|
|||||||
export {};
|
export {};
|
||||||
|
|
||||||
const onReady = (fn: () => void): void => {
|
import { onReady } from "./utils";
|
||||||
if (document.readyState === "loading") {
|
|
||||||
document.addEventListener("DOMContentLoaded", fn, { once: true });
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
fn();
|
|
||||||
};
|
|
||||||
|
|
||||||
const isMobileViewport = (): boolean => window.matchMedia("(max-width: 1023px)").matches;
|
const isMobileViewport = (): boolean => window.matchMedia("(max-width: 1023px)").matches;
|
||||||
|
|
||||||
|
|||||||
@@ -11,3 +11,12 @@ export const parseClassList = (value: string | null): string[] => {
|
|||||||
.map((entry: string): string => entry.trim())
|
.map((entry: string): string => entry.trim())
|
||||||
.filter((entry: string): boolean => entry.length > 0);
|
.filter((entry: string): boolean => entry.length > 0);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const onReady = (fn: () => void): void => {
|
||||||
|
if (document.readyState === "loading") {
|
||||||
|
document.addEventListener("DOMContentLoaded", fn, { once: true });
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn();
|
||||||
|
};
|
||||||
|
|||||||
@@ -458,15 +458,6 @@ const getRenderedWatchlistIds = (): number[] => {
|
|||||||
return Array.from(ids);
|
return Array.from(ids);
|
||||||
};
|
};
|
||||||
|
|
||||||
const onReady = (fn: () => void): void => {
|
|
||||||
if (document.readyState === "loading") {
|
|
||||||
document.addEventListener("DOMContentLoaded", fn, { once: true });
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
fn();
|
|
||||||
};
|
|
||||||
|
|
||||||
const installDelegatedHandlers = (): void => {
|
const installDelegatedHandlers = (): void => {
|
||||||
document.addEventListener("click", (event) => {
|
document.addEventListener("click", (event) => {
|
||||||
const target = event.target;
|
const target = event.target;
|
||||||
@@ -537,3 +528,4 @@ onReady(() => {
|
|||||||
|
|
||||||
installDelegatedHandlers();
|
installDelegatedHandlers();
|
||||||
});
|
});
|
||||||
|
import { onReady } from "./utils";
|
||||||
|
|||||||
Reference in New Issue
Block a user