import { getDocument, getWindow } from "ssr-window"; type TContentLoadedCallback = (event: CustomEvent) => void; /** * Подписывается на событие вставки нового контента в страницу * @param callback{Function} * @template T - тип данных, которые ожидаются в `event.detail` события `contentLoaded`. * @returns {void} * @example * import { onContentLoaded } from "@delement/ui/utils"; * * onContentLoaded<{ source: string }>((event) => { * console.log(event.detail.source); * }); */ export const onContentLoaded = (callback: TContentLoadedCallback | null) => { getDocument().addEventListener(getWindow()?.App?.contentLoadedEvent ?? "contentLoaded", (e: Event) => { if (typeof callback === "function") { callback(e as CustomEvent); } }); };