diff --git a/src/MainPage.svelte b/src/MainPage.svelte index 3640d1f..7044cdb 100644 --- a/src/MainPage.svelte +++ b/src/MainPage.svelte @@ -6,7 +6,7 @@
-
+

NiimBlue diff --git a/src/lib/PrinterConnector.svelte b/src/lib/PrinterConnector.svelte index a64c86c..6b10384 100644 --- a/src/lib/PrinterConnector.svelte +++ b/src/lib/PrinterConnector.svelte @@ -8,12 +8,14 @@ heartbeatData, printerInfo, printerMeta, - heartbeatFails + heartbeatFails, } from "../stores"; import type { ConnectionType } from "../types"; import { tr } from "../utils/i18n"; import MdIcon from "./MdIcon.svelte"; import { Toasts } from "../utils/toasts"; + import { onMount } from "svelte"; + import { LocalStoragePersistence } from "../utils/persistence"; let connectionType: ConnectionType = "bluetooth"; let rfidInfo: RfidInfo | undefined = undefined; @@ -60,9 +62,18 @@ const reset = async () => { await $printerClient.abstraction.printerReset(); }; + + const switchConnectionType = (c: ConnectionType) => { + LocalStoragePersistence.saveLastConnectionType(c); + connectionType = c; + }; + + onMount(() => { + connectionType = LocalStoragePersistence.loadLastConnectionType() ?? "bluetooth"; + }); -
+
{#if $connectionState === "connected"}
- + {$printerMeta?.model ?? $connectedPrinterName} {:else} - + + {/if} {#if $connectionState !== "connected"} diff --git a/src/utils/persistence.ts b/src/utils/persistence.ts index ac779e8..9ab1f64 100644 --- a/src/utils/persistence.ts +++ b/src/utils/persistence.ts @@ -1,4 +1,14 @@ -import { FabricJsonSchema, LabelPresetSchema, LabelPropsSchema, PreviewPropsSchema, type FabricJson, type LabelPreset, type LabelProps, type PreviewProps } from "../types"; +import { + FabricJsonSchema, + LabelPresetSchema, + LabelPropsSchema, + PreviewPropsSchema, + type ConnectionType, + type FabricJson, + type LabelPreset, + type LabelProps, + type PreviewProps, +} from "../types"; import { z } from "zod"; export class LocalStoragePersistence { @@ -121,4 +131,16 @@ export class LocalStoragePersistence { const presets = this.loadAndValidateObject("label_presets", z.array(LabelPresetSchema)); return presets === null || presets.length === 0 ? null : presets; } + + static loadLastConnectionType(): ConnectionType | null { + const value = localStorage.getItem("connection_type"); + if (value === null || !["bluetooth", "serial"].includes(value)) { + return null; + } + return value as ConnectionType; + } + + static saveLastConnectionType(value: ConnectionType) { + localStorage.setItem("connection_type", value); + } }