From 54836f14e76061b1b4c6cab74bc349c11186ef09 Mon Sep 17 00:00:00 2001 From: Tristan Michael Date: Thu, 2 Apr 2026 08:23:38 -0700 Subject: [PATCH] fix: improve frontend accessibility, consistency, and resource cleanup Fix nested interactive elements in TaskItem (button inside button) by restructuring as div + button with aria-label. Replace native confirm() with ConfirmDialog for workspace removal. Store fs-changed event unlisten function for cleanup. Log file watcher errors instead of swallowing them. Fix var usage to const. Add Firefox scrollbar-width support. --- apps/tauri/src/app.css | 7 +++++++ .../src/lib/components/TaskDetailView.svelte | 2 +- apps/tauri/src/lib/components/TaskItem.svelte | 13 +++++++------ apps/tauri/src/lib/screens/TasksScreen.svelte | 17 +++++++++++++++-- apps/tauri/src/lib/stores/app.svelte.ts | 8 ++++++-- 5 files changed, 36 insertions(+), 11 deletions(-) diff --git a/apps/tauri/src/app.css b/apps/tauri/src/app.css index 3871f70..ec6380a 100644 --- a/apps/tauri/src/app.css +++ b/apps/tauri/src/app.css @@ -45,6 +45,13 @@ body { } /* Scrollbar styling */ +* { + scrollbar-width: thin; + scrollbar-color: #d1d5db transparent; +} +.dark * { + scrollbar-color: #4b5563 transparent; +} ::-webkit-scrollbar { width: 4px; } diff --git a/apps/tauri/src/lib/components/TaskDetailView.svelte b/apps/tauri/src/lib/components/TaskDetailView.svelte index 824b9ab..8392600 100644 --- a/apps/tauri/src/lib/components/TaskDetailView.svelte +++ b/apps/tauri/src/lib/components/TaskDetailView.svelte @@ -34,7 +34,7 @@ function debouncedSave(fields: Partial) { clearTimeout(saveTimer); - var snapshot = { ...task }; + const snapshot = { ...task }; saveTimer = setTimeout(() => { app.updateTask({ ...snapshot, ...fields, updated_at: new Date().toISOString() }); }, 400); diff --git a/apps/tauri/src/lib/components/TaskItem.svelte b/apps/tauri/src/lib/components/TaskItem.svelte index 520a2c7..bf922a7 100644 --- a/apps/tauri/src/lib/components/TaskItem.svelte +++ b/apps/tauri/src/lib/components/TaskItem.svelte @@ -106,15 +106,16 @@ {/if} -
@@ -160,7 +161,7 @@ - +
diff --git a/apps/tauri/src/lib/screens/TasksScreen.svelte b/apps/tauri/src/lib/screens/TasksScreen.svelte index 3e09e5d..6ed0665 100644 --- a/apps/tauri/src/lib/screens/TasksScreen.svelte +++ b/apps/tauri/src/lib/screens/TasksScreen.svelte @@ -44,7 +44,7 @@ showWorkspacePicker = false; if (showListMenu && listMenuEl && !listMenuEl.contains(e.target as Node)) showListMenu = false; - var target = e.target as HTMLElement; + const target = e.target as HTMLElement; if (wsMenuName && !target.closest("[data-ws-menu]")) wsMenuName = null; } @@ -58,6 +58,7 @@ let listMenuEl = $state(null); let confirmDeleteList = $state(false); let confirmDeleteCompleted = $state(false); + let confirmRemoveWorkspace = $state(null); let dragId = $state(null); let dragOverId = $state(null); let resizing = $state(false); @@ -270,7 +271,7 @@ {#if wsMenuName === name}