From df82b0636db7e209972f44b7f29eb1135923fce5 Mon Sep 17 00:00:00 2001 From: iamdoubz <> Date: Thu, 2 Jul 2026 12:57:36 -0500 Subject: [PATCH] feat(ui): icon nav tabs + elevation for the Settings modal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Recording/Hardware/Storage/Calendar/Sync/Privacy nav tabs get matching icons; the active tab now uses the accent color instead of an inverted fg/bg swap. Check/X/AlertTriangle icons replace ✓/✗/✕/⚠ throughout (connection test result, close button, third-party-cloud warning banner, no-egress confirmation). The modal itself gets proper elevation (shadow + larger radius) instead of a flat bordered box. --- src/lib/views/Settings.svelte | 135 +++++++++++++++++++++++++--------- 1 file changed, 101 insertions(+), 34 deletions(-) diff --git a/src/lib/views/Settings.svelte b/src/lib/views/Settings.svelte index d9d10f8..0acb278 100644 --- a/src/lib/views/Settings.svelte +++ b/src/lib/views/Settings.svelte @@ -9,6 +9,17 @@ import { open } from "@tauri-apps/plugin-dialog"; import type { BackendId, SyncKind, SyncTargetConfig } from "../api"; import { trapFocus } from "../actions/trapFocus"; + import { + X, + Check, + AlertTriangle, + Mic, + Cpu, + HardDrive, + CalendarDays, + UploadCloud, + ShieldCheck, + } from "@lucide/svelte"; let { onClose }: { onClose: () => void } = $props(); @@ -49,7 +60,7 @@ return Math.round((p.received / p.total) * 100); } let showConsent = $state(false); - let testResult = $state(null); + let testResult = $state<{ ok: boolean; message: string } | null>(null); onMount(() => { settings.load(); @@ -113,7 +124,7 @@ } async function testConnection() { const r = await settings.test(form); - testResult = (r.ok ? "✓ " : "✗ ") + r.message; + testResult = { ok: r.ok, message: r.message }; } async function addTarget() { await settings.addTarget(form); @@ -138,24 +149,28 @@
Settings - +
{#if settings.backendStub && section === "sync"} @@ -449,11 +464,20 @@ - {#if testResult}{testResult}{/if} + {#if testResult} + + {#if testResult.ok} + {/if} {:else}
@@ -494,7 +518,10 @@

Egress allowlist

{#if settings.privacy.allowlistedHosts.length === 0} -

✓ No hosts are allowlisted — WA makes no content egress.

+

+

{:else}