feat(notifications): report completed background tasks
Register the Tauri notification plugin and request notification permission during startup. Send completion notifications for folder scans, embeddings, AI tagging, and duplicate scans, including failure counts where available.
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
import {
|
||||
isPermissionGranted,
|
||||
requestPermission,
|
||||
sendNotification,
|
||||
} from "@tauri-apps/plugin-notification";
|
||||
|
||||
let permissionPromise: Promise<boolean> | null = null;
|
||||
|
||||
export function initializeNotifications(): Promise<boolean> {
|
||||
permissionPromise ??= (async () => {
|
||||
try {
|
||||
if (await isPermissionGranted()) return true;
|
||||
return (await requestPermission()) === "granted";
|
||||
} catch (error) {
|
||||
console.warn("Windows notifications are unavailable:", error);
|
||||
return false;
|
||||
}
|
||||
})();
|
||||
|
||||
return permissionPromise;
|
||||
}
|
||||
|
||||
export async function notifyTaskComplete(title: string, body: string): Promise<void> {
|
||||
if (!(await initializeNotifications())) return;
|
||||
|
||||
try {
|
||||
sendNotification({ title, body });
|
||||
} catch (error) {
|
||||
console.warn("Could not send task completion notification:", error);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user