diff --git a/apps/desktop/src-tauri/tauri.conf.json b/apps/desktop/src-tauri/tauri.conf.json index 26b1024..e22d75b 100644 --- a/apps/desktop/src-tauri/tauri.conf.json +++ b/apps/desktop/src-tauri/tauri.conf.json @@ -44,14 +44,6 @@ "icons/icon.icns", "icons/icon.png", "icons/Raven.png" - ], - "windows": { - "nsis": { - "installMode": "perMachine", - "allowToChangeInstallDirectory": true, - "installDirName": "Raven", - "createDesktopShortcut": true - } - } + ] } } diff --git a/apps/desktop/src/main.tsx b/apps/desktop/src/main.tsx index 833d783..94a6f5a 100644 --- a/apps/desktop/src/main.tsx +++ b/apps/desktop/src/main.tsx @@ -3,7 +3,8 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react" import { createRoot } from "react-dom/client" import { invoke } from "@tauri-apps/api/core" import { Store } from "@tauri-apps/plugin-store" -import { appLocalDataDir } from "@tauri-apps/api/path" +import { appLocalDataDir, executableDir, join } from "@tauri-apps/api/path" +import { createDir, exists } from "@tauri-apps/api/fs" import { ExternalLink, Eye, EyeOff, GalleryVerticalEnd, Loader2, RefreshCw } from "lucide-react" import { Tabs, TabsContent, TabsList, TabsTrigger } from "./components/ui/tabs" import { cn } from "./lib/utils" @@ -103,8 +104,20 @@ function normalizeUrl(value?: string | null, fallback = DEFAULT_APP_URL) { const appUrl = normalizeUrl(import.meta.env.VITE_APP_URL, DEFAULT_APP_URL) const apiBaseUrl = normalizeUrl(import.meta.env.VITE_API_BASE_URL, appUrl) +async function resolveDataDir(): Promise { + try { + const exe = await executableDir() + const dir = await join(exe, "data") + const ok = await exists(dir).catch(() => false) + if (!ok) await createDir(dir, { recursive: true }) + return dir + } catch { + return await appLocalDataDir() + } +} + async function loadStore(): Promise { - const dir = await appLocalDataDir() + const dir = await resolveDataDir() return await Store.load(STORE_FILENAME, { dir }) }