From c044ebdf424b1b49127c050f1c03928e98b97da7 Mon Sep 17 00:00:00 2001 From: Andrew Beal Date: Mon, 16 Feb 2026 20:39:15 +0000 Subject: [PATCH] feat: add select-all checkbox and grid layout to conversation history modal - Add toggleAll function to select/deselect all conversations - Restructure layout using CSS grid for better alignment - Add header row with column labels (Date, Title) and select-all checkbox - Improve text overflow handling with min-width - Update TypeScript ESLint packages to 8.56.0 --- Modals/ConversationHistoryModalSvelte.svelte | 94 ++++++------ package-lock.json | 146 +++++++++---------- package.json | 4 +- 3 files changed, 127 insertions(+), 117 deletions(-) diff --git a/Modals/ConversationHistoryModalSvelte.svelte b/Modals/ConversationHistoryModalSvelte.svelte index 9058ffa..8392731 100644 --- a/Modals/ConversationHistoryModalSvelte.svelte +++ b/Modals/ConversationHistoryModalSvelte.svelte @@ -34,6 +34,14 @@ selectedItems = selectedItems; } + function toggleAll(state: boolean) { + selectedItems.clear(); + if (state) { + selectedItems = new Set(items.map(item => item.id)); + } + selectedItems = selectedItems; + } + function handleDelete() { if (selectedItems.size === 0) { return; @@ -80,30 +88,43 @@
{#if filteredItems.length === 0} -

- {Copy.NoConversationsFound} -

+

+ {Copy.NoConversationsFound} +

{:else} - {#each filteredItems as item (item.id)} -
-
handleConversationClick(item.id, e)} - on:keydown={(e) => e.key === 'Enter' && handleConversationClick(item.id, e)} - role="button" - tabindex="0"> - {item.date} - | - {item.title} -
+
+ Date + | + Title toggleSelection(item.id)} + on:change={(event) => toggleAll(event.currentTarget.checked)} /> + {#each filteredItems as item (item.id)} + handleConversationClick(item.id, e)} + on:keydown={(e) => e.key === 'Enter' && handleConversationClick(item.id, e)} + role="button" + tabindex="0">{item.date} + handleConversationClick(item.id, e)} + on:keydown={(e) => e.key === 'Enter' && handleConversationClick(item.id, e)} + role="button" + tabindex="0">| + handleConversationClick(item.id, e)} + on:keydown={(e) => e.key === 'Enter' && handleConversationClick(item.id, e)} + role="button" + tabindex="0">{item.title} + toggleSelection(item.id)} + /> + {/each}
- {/each} {/if}
@@ -111,7 +132,7 @@