import { invoke as nativeInvoke, isTauri, convertFileSrc, } from "@tauri-apps/api/core"; import { CaptureBridge } from "./capture-bridge"; import { nativePreviewToken } from "./media-access"; const capture = new CaptureBridge(); export const isNativeDesktop = () => isTauri(); export const isCaptureSurface = () => capture.active; export const isDesktopSurface = () => isTauri() || capture.active; export async function initializeDesktopSurface() { if (isTauri()) return; await capture.initialize(window.location.href); } export function invoke( command: string, args?: Record, ): Promise { return isTauri() ? nativeInvoke(command, args) : capture.invoke(command, args); } export function prepareMediaURL(path: string) { if (isTauri()) return convertFileSrc(nativePreviewToken(path), "searchi-media"); return capture.mediaURL(path); }