import { Route, Router } from "@solidjs/router"; import { listen } from "@tauri-apps/api/event"; import { createEffect, createSignal, onCleanup } from "solid-js"; import { Login } from "./Login"; import { ProtectedRoute } from "./ProtectedRoute"; import { Search } from "./Search"; import { Settings } from "./Settings"; import { sendImage, sendImageFile } from "./network"; import type { PluginListener } from "@tauri-apps/api/core"; import { SearchImageContextProvider } from "./contexts/SearchImageContext"; import { platform } from "@tauri-apps/plugin-os"; import { listenForShareEvents, type ShareEvent, } from "tauri-plugin-sharetarget-api"; import { readFile } from "@tauri-apps/plugin-fs"; import { ImageViewer } from "./components/ImageViewer"; import { ImageStatus } from "./components/image-status/ImageStatus"; const currentPlatform = platform(); console.log("Current Platform: ", currentPlatform); export const App = () => { createEffect(() => { // TODO: Don't use window.location.href const unlisten = listen("focus-search", () => { window.location.href = "/"; }); onCleanup(() => { unlisten.then((fn) => fn()); }); }); createEffect(() => { if (currentPlatform !== "android") { return; } let listener: PluginListener; const setupListener = async () => { console.log("Setting up listener"); listener = await listenForShareEvents( async (intent: ShareEvent) => { console.log(intent); const contents = await readFile(intent.stream ?? "").catch( (error: Error) => { console.warn("fetching shared content failed:"); throw error; }, ); const f = new File([contents], intent.name ?? "no-name", { type: intent.content_type, }); sendImageFile(f.name, f); }, ); }; setupListener(); return () => { listener?.unregister(); }; }); const [processingImage, setProcessingImage] = createSignal< Awaited> | undefined >(); return ( ); };