2022-05-31 15:49:04 +00:00
|
|
|
type CustomEventDetail<T> = T extends CustomEvent<infer D> ? D : never;
|
|
|
|
|
|
|
|
function createEvent<
|
|
|
|
K extends keyof WindowEventMap,
|
|
|
|
P extends CustomEventDetail<WindowEventMap[K]>
|
|
|
|
>(event: K, payload: P) {
|
|
|
|
return new CustomEvent<P>(event, { bubbles: true, detail: payload });
|
|
|
|
}
|
|
|
|
|
2022-08-23 15:13:46 +00:00
|
|
|
export function setAuthenticated(authenticated: boolean) {
|
|
|
|
const event = createEvent("app-auth-changed", { authenticated });
|
2022-05-31 15:49:04 +00:00
|
|
|
window.dispatchEvent(event);
|
|
|
|
}
|
|
|
|
|
|
|
|
export function setCriticalError(message: string) {
|
|
|
|
const event = createEvent("app-critical-error", { message });
|
|
|
|
|
|
|
|
window.dispatchEvent(event);
|
|
|
|
}
|
|
|
|
|
|
|
|
export function setOnlineStatus(online: boolean) {
|
|
|
|
const event = createEvent("app-online-status", { online });
|
|
|
|
window.dispatchEvent(event);
|
|
|
|
}
|