This commit is contained in:
Lyz Coote
2026-02-02 18:41:13 +01:00
commit d6a5cb8a67
161 changed files with 8630 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
import { GetConfig, SaveConfig } from "$lib/wailsjs/go/main/App";
import type { utils } from "$lib/wailsjs/go/models"
async function loadConfig() {
try {
const config = await GetConfig();
return config;
} catch (error) {
console.error("Failed to load config:", error);
return null;
}
}
async function saveConfig(config: utils.Config) {
try {
await SaveConfig(config);
} catch (error) {
console.error("Failed to save config:", error);
}
}
function saveToLocalStorage(key: string, value: string): boolean {
try {
localStorage.setItem(key, value);
return true;
} catch (error) {
console.error("Failed to save to localStorage:", error);
return false;
}
}
function getFromLocalStorage(key: string): string | null {
try {
return localStorage.getItem(key);
} catch (error) {
console.error("Failed to get from localStorage:", error);
return null;
}
}
export {
loadConfig,
saveConfig,
saveToLocalStorage,
getFromLocalStorage
};

View File

@@ -0,0 +1,38 @@
import { toast } from "svelte-sonner";
import UnsavedBar from "$lib/components/UnsavedBar.svelte";
const UNSAVED_CHANGES_TOAST_ID = "unsaved-changes";
const ONE_YEAR_MS = 1000 * 60 * 60 * 24 * 365;
export type UnsavedChangesToastHandlers = {
onSave: () => void;
onReset: () => void;
};
export function showUnsavedChangesToast(handlers: UnsavedChangesToastHandlers) {
let toastId: string | number = UNSAVED_CHANGES_TOAST_ID;
toastId = toast.custom(UnsavedBar, {
id: toastId,
duration: ONE_YEAR_MS,
dismissable: false,
unstyled: true,
componentProps: {
onSave: () => {
handlers.onSave();
toast.dismiss(toastId);
},
onReset: () => {
handlers.onReset();
toast.dismiss(toastId);
},
},
});
return toastId;
}
export function dismissUnsavedChangesToast() {
toast.dismiss(UNSAVED_CHANGES_TOAST_ID);
}