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}
-
+ switchConnectionType("bluetooth")}>
+
+ {$tr("connector.bluetooth")}
+
+ switchConnectionType((connectionType = "serial"))}>
+
+ {$tr("connector.serial")}
+
{/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);
+ }
}