From d2e7b47c6510201875685483ba5fd87934e38362 Mon Sep 17 00:00:00 2001 From: Andrew Beal Date: Tue, 23 Dec 2025 20:18:27 +0000 Subject: [PATCH] refactor: centralize icon handling and improve attachment UI - Move icon name logic to Attachment and Reference classes - Create reusable setElementIcon Svelte action in ElementHelper - Update ChatArea and ChatAttachments to use new icon helper - Add visual separator and background color for message attachments - Fix duplicate URIs in drag-and-drop file handling - Improve attachment icon centering with flexbox layout --- Components/ChatArea.svelte | 22 +++++++++---- Components/ChatAttachments.svelte | 52 ++++--------------------------- Conversations/Attachment.ts | 24 ++++++++++++++ Conversations/Reference.ts | 24 ++++++++++++++ Helpers/ElementHelper.ts | 15 +++++++++ Services/InputService.ts | 35 ++++++++++++++++++++- 6 files changed, 119 insertions(+), 53 deletions(-) diff --git a/Components/ChatArea.svelte b/Components/ChatArea.svelte index 12ada55..65df582 100644 --- a/Components/ChatArea.svelte +++ b/Components/ChatArea.svelte @@ -11,7 +11,7 @@ import { tick } from "svelte"; import { Selector } from "Enums/Selector"; import { Exception } from "Helpers/Exception"; - import { getOuterHeight } from "Helpers/ElementHelper"; + import { getOuterHeight, setElementIcon } from "Helpers/ElementHelper"; export let cancelling: boolean = false; export let messages: ConversationContent[] = []; @@ -263,12 +263,13 @@ {@html content} {#if message.references.length > 0} +
{#each message.references as reference}
{reference.fileName}
@@ -430,12 +431,18 @@ } /* Message attachments styles */ + .message-attachment-break { + color: var(--background-secondary-alt); + margin: 0 0 var(--size-4-2) 0; + opacity: 0.5; + } + .message-attachments-container { display: flex; overflow-x: auto; overflow-y: hidden; scroll-behavior: smooth; - gap: var(--size-4-1); + gap: var(--size-4-2); margin-bottom: var(--size-4-2); } @@ -445,8 +452,9 @@ .message-attachmanet { display: grid; - grid-template-rows: var(--size-4-1) auto var(--size-4-1); - grid-template-columns: var(--size-4-1) auto var(--size-4-1) auto var(--size-4-1); + grid-template-rows: var(--size-4-2) auto var(--size-4-2); + grid-template-columns: var(--size-4-2) auto var(--size-4-2) auto var(--size-4-2); + background-color: var(--background-secondary-alt); border: var(--border-width) solid var(--background-modifier-border); border-radius: var(--radius-m); flex-shrink: 0; @@ -455,7 +463,9 @@ .message-attachment-icon { grid-row: 2; grid-column: 2; - align-content: center; + display: flex; + align-items: center; + justify-content: center; } .message-attachment-info { diff --git a/Components/ChatAttachments.svelte b/Components/ChatAttachments.svelte index 2a1d5f4..37ff63f 100644 --- a/Components/ChatAttachments.svelte +++ b/Components/ChatAttachments.svelte @@ -1,20 +1,11 @@