Something went wrong. Try again.
Monorepo for Tangled
Something went wrong. Try again.
TypeScript
at icy/tmrrpn
1234567891011121314151617181920212223242526import { getContext } from "svelte";import { createDeliberiClient } from "$lib/api/deliberi";import { markEntityNotificationsRead } from "$lib/api/notifications";import type { Auth } from "$lib/auth.svelte";
export const NOTIFICATIONS_KEY = Symbol("notifications");
export interface Notifications { markEntityVisited(entityUri: string): Promise<void>;}
export const createNotifications = (auth: Auth, deliberiUrl: string | undefined): Notifications => { const markEntityVisited = async (entityUri: string): Promise<void> => { // yield first so the call lands outside the $effect that invoked it await Promise.resolve(); const agent = auth.agent; if (!agent || !deliberiUrl) return; const deliberi = createDeliberiClient({ deliberiUrl, agent }); await markEntityNotificationsRead(deliberi, entityUri).catch(() => {}); };
return { markEntityVisited };};
export const getNotifications = () => getContext<Notifications>(NOTIFICATIONS_KEY);