import { invoke } from "@tauri-apps/api/core"; import type { AnalyticsAPI } from "@/shared/analytics/AnalyticsAPI"; /** * Desktop implementation of AnalyticsAPI using Tauri commands. * * Events are sent to the Rust backend which handles batching and * sending to PostHog. */ export class TauriAnalytics implements AnalyticsAPI { track(event: string, properties?: Record): void { invoke("track_analytics_event", { payload: { event, properties: properties || {}, }, }).catch((err) => { console.error("Failed to track analytics event:", err); }); } async flush(): Promise { try { await invoke("flush_analytics"); } catch (err) { console.error("Failed to flush analytics:", err); } } } // Export singleton instance export const tauriAnalytics = new TauriAnalytics();