// Notifications bridge — wraps Tauri desktop notification command

import { invoke } from '@tauri-apps/api/core';

export type NotificationUrgency = 'low' | 'normal' | 'critical';

/**
 * Send an OS desktop notification via notify-rust.
 * Fire-and-forget: errors are swallowed (notification daemon may not be running).
 */
export function sendDesktopNotification(
  title: string,
  body: string,
  urgency: NotificationUrgency = 'normal',
): void {
  invoke('notify_desktop', { title, body, urgency }).catch((_e: unknown) => {
    // Intentional: notification daemon may not be running. Cannot use handleInfraError
    // here — it calls tel.error, and notify() calls sendDesktopNotification, creating a loop.
    // eslint-disable-next-line no-console
    console.warn('[notifications-bridge] Desktop notification failed:', _e);
  });
}
