added in browser notifications for notifications in settings

This commit is contained in:
masongga
2026-05-24 00:14:06 -06:00
parent dfafba0c94
commit 3cb22a4089
10 changed files with 394 additions and 59 deletions

38
lib/in-app-reminders.ts Normal file
View File

@@ -0,0 +1,38 @@
import { routes } from "@/lib/routes";
export const IN_APP_REMINDER_EVENT = "habit-pet-in-app-reminder";
export type InAppReminderPayload = {
title: string;
body: string;
targetUrl: string;
isTest?: boolean;
};
export function dispatchInAppReminder(payload: InAppReminderPayload) {
if (typeof window === "undefined") {
return false;
}
window.dispatchEvent(
new CustomEvent<InAppReminderPayload>(IN_APP_REMINDER_EVENT, {
detail: payload,
}),
);
return true;
}
export function showInAppDailyReminder(input: {
title: string;
body: string;
targetUrl?: string;
isTest?: boolean;
}) {
return dispatchInAppReminder({
title: input.title,
body: input.body,
targetUrl: input.targetUrl ?? routes.avatar,
isTest: input.isTest,
});
}