Files
ai-agent/widget/lib/services/notification.ts
T
mlogclub efe801b8bf Init
2026-04-09 10:01:23 +08:00

38 lines
940 B
TypeScript

import type { WidgetMessage } from "./types";
import { summarizeMessage } from "./message-asset";
export function getNotificationBody(message: WidgetMessage): string {
return summarizeMessage(message);
}
export function showNotification(title: string, body: string, onClick?: () => void) {
if (typeof Notification === "undefined") {
return;
}
if (Notification.permission === "granted") {
const notification = new Notification(title, {
body,
icon: "/favicon.ico",
badge: "/favicon.ico",
});
if (onClick) {
notification.onclick = () => {
onClick();
notification.close();
};
}
setTimeout(() => {
notification.close();
}, 5000);
} else if (Notification.permission === "default") {
Notification.requestPermission().then((permission) => {
if (permission === "granted") {
showNotification(title, body, onClick);
}
});
}
}