From 57ad9359dcdf4f1509f6c9c5ceea114e95749a92 Mon Sep 17 00:00:00 2001 From: Aleksander Grygier Date: Wed, 11 Feb 2026 12:11:20 +0100 Subject: [PATCH] refactor: Use Svelte derived state for non-mutable reactive variables --- .../lib/components/app/chat/ChatMessages/ChatMessage.svelte | 4 ++-- .../app/chat/ChatMessages/ChatMessageStatistics.svelte | 2 +- .../components/app/chat/ChatScreen/ChatScreenForm.svelte | 6 +++--- .../components/app/chat/ChatSettings/ChatSettings.svelte | 2 +- .../src/lib/components/app/mcp/McpConnectionLogs.svelte | 2 +- .../components/app/mcp/McpServerCard/McpServerCard.svelte | 2 +- .../app/mcp/McpServerCard/McpServerCardEditForm.svelte | 4 ++-- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessage.svelte b/tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessage.svelte index 5719de0ea4..29c326cf30 100644 --- a/tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessage.svelte +++ b/tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessage.svelte @@ -38,8 +38,8 @@ assistantMessages: number; messageTypes: string[]; } | null>(null); - let editedContent = $state(message.content); - let editedExtras = $state(message.extra ? [...message.extra] : []); + let editedContent = $derived(message.content); + let editedExtras = $derived(message.extra ? [...message.extra] : []); let editedUploadedFiles = $state([]); let isEditing = $state(false); let showDeleteDialog = $state(false); diff --git a/tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageStatistics.svelte b/tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageStatistics.svelte index bca1dfea4f..4bde1567a1 100644 --- a/tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageStatistics.svelte +++ b/tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageStatistics.svelte @@ -33,7 +33,7 @@ hideSummary = false }: Props = $props(); - let activeView: ChatMessageStatsView = $state(initialView); + let activeView: ChatMessageStatsView = $derived(initialView); let hasAutoSwitchedToGeneration = $state(false); $effect(() => { diff --git a/tools/server/webui/src/lib/components/app/chat/ChatScreen/ChatScreenForm.svelte b/tools/server/webui/src/lib/components/app/chat/ChatScreen/ChatScreenForm.svelte index ea11f9e953..eb6f0d0f04 100644 --- a/tools/server/webui/src/lib/components/app/chat/ChatScreen/ChatScreenForm.svelte +++ b/tools/server/webui/src/lib/components/app/chat/ChatScreen/ChatScreenForm.svelte @@ -32,9 +32,9 @@ }: Props = $props(); let chatFormRef: ChatForm | undefined = $state(undefined); - let message = $state(initialMessage); - let previousIsLoading = $state(isLoading); - let previousInitialMessage = $state(initialMessage); + let message = $derived(initialMessage); + let previousIsLoading = $derived(isLoading); + let previousInitialMessage = $derived(initialMessage); // Sync message when initialMessage prop changes (e.g., after draft restoration) $effect(() => { diff --git a/tools/server/webui/src/lib/components/app/chat/ChatSettings/ChatSettings.svelte b/tools/server/webui/src/lib/components/app/chat/ChatSettings/ChatSettings.svelte index 37ef2e7717..7cf5eb8715 100644 --- a/tools/server/webui/src/lib/components/app/chat/ChatSettings/ChatSettings.svelte +++ b/tools/server/webui/src/lib/components/app/chat/ChatSettings/ChatSettings.svelte @@ -310,7 +310,7 @@ // } ]; - let activeSection = $state( + let activeSection = $derived( initialSection ?? SETTINGS_SECTION_TITLES.GENERAL ); let currentSection = $derived( diff --git a/tools/server/webui/src/lib/components/app/mcp/McpConnectionLogs.svelte b/tools/server/webui/src/lib/components/app/mcp/McpConnectionLogs.svelte index 3ea446de4c..6e24ce6422 100644 --- a/tools/server/webui/src/lib/components/app/mcp/McpConnectionLogs.svelte +++ b/tools/server/webui/src/lib/components/app/mcp/McpConnectionLogs.svelte @@ -14,7 +14,7 @@ let { logs, connectionTimeMs, defaultExpanded = false, class: className }: Props = $props(); - let isExpanded = $state(defaultExpanded); + let isExpanded = $derived(defaultExpanded); {#if logs.length > 0} diff --git a/tools/server/webui/src/lib/components/app/mcp/McpServerCard/McpServerCard.svelte b/tools/server/webui/src/lib/components/app/mcp/McpServerCard/McpServerCard.svelte index d3fce493a5..6a7b56370e 100644 --- a/tools/server/webui/src/lib/components/app/mcp/McpServerCard/McpServerCard.svelte +++ b/tools/server/webui/src/lib/components/app/mcp/McpServerCard/McpServerCard.svelte @@ -56,7 +56,7 @@ let connectionTimeMs = $derived(successState?.connectionTimeMs); let instructions = $derived(successState?.instructions); - let isEditing = $state(!server.url.trim()); + let isEditing = $derived(!server.url.trim()); let showDeleteDialog = $state(false); let editFormRef: McpServerCardEditForm | null = $state(null); diff --git a/tools/server/webui/src/lib/components/app/mcp/McpServerCard/McpServerCardEditForm.svelte b/tools/server/webui/src/lib/components/app/mcp/McpServerCard/McpServerCardEditForm.svelte index cf378c6dbd..6727a90006 100644 --- a/tools/server/webui/src/lib/components/app/mcp/McpServerCard/McpServerCardEditForm.svelte +++ b/tools/server/webui/src/lib/components/app/mcp/McpServerCard/McpServerCardEditForm.svelte @@ -12,9 +12,9 @@ let { serverId, serverUrl, serverUseProxy = false, onSave, onCancel }: Props = $props(); - let editUrl = $state(serverUrl); + let editUrl = $derived(serverUrl); let editHeaders = $state(''); - let editUseProxy = $state(serverUseProxy); + let editUseProxy = $derived(serverUseProxy); let urlError = $derived.by(() => { if (!editUrl.trim()) return 'URL is required';