From ae019237d1a1f742cb5f3e4e8afecf8cd01f56c1 Mon Sep 17 00:00:00 2001 From: Diego Imbert <70353967+diegoimbert@users.noreply.github.com> Date: Wed, 11 Mar 2026 18:52:26 +0100 Subject: [PATCH] runs page nits (#8325) --- CLAUDE.md | 4 ++- frontend/src/lib/components/RunsPage.svelte | 26 +++++++++++-------- .../toggleButton-v2/ToggleButtonMore.svelte | 12 ++++++--- 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 0acc541c92..fe22fae0f7 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -14,7 +14,7 @@ Open-source platform for internal tools, workflows, API integrations, background - **Validation**: `docs/validation.md` — what checks to run based on what you changed - **Enterprise**: `docs/enterprise.md` — EE file conventions and PR workflow - **Backend patterns**: use the `rust-backend` skill when writing Rust code -- **Frontend patterns**: use the `svelte-frontend` skill when writing Svelte code +- **Frontend patterns**: use the `svelte-frontend` skill when writing Svelte code. Do NOT edit svelte files unless you have read that skill. - **Domain guides**: `.claude/skills/native-trigger/` and `frontend/tutorial-system-guide.mdc` - **Brand/UI guidelines**: `frontend/brand-guidelines.md` @@ -33,6 +33,7 @@ Open-source platform for internal tools, workflows, API integrations, background Using `$bindable(default_value)` on props that can be `undefined` is **banned**. This pattern causes subtle bugs because the default value masks the `undefined` state. **Bad:** + ```svelte let { my_prop = $bindable(default_value) }: { my_prop?: string } = $props() ``` @@ -40,6 +41,7 @@ let { my_prop = $bindable(default_value) }: { my_prop?: string } = $props() **Correct alternatives:** 1. **Use `$derived` with nullish coalescing** — handle the potential `undefined` at the usage site: + ```svelte let { my_prop = $bindable() }: { my_prop?: string } = $props() let effective_value = $derived(my_prop ?? default_value) diff --git a/frontend/src/lib/components/RunsPage.svelte b/frontend/src/lib/components/RunsPage.svelte index 5aee359a4a..6de1461e20 100644 --- a/frontend/src/lib/components/RunsPage.svelte +++ b/frontend/src/lib/components/RunsPage.svelte @@ -595,7 +595,7 @@ diff --git a/frontend/src/lib/components/common/toggleButton-v2/ToggleButtonMore.svelte b/frontend/src/lib/components/common/toggleButton-v2/ToggleButtonMore.svelte index 9d6c1d2bc1..1300dc4322 100644 --- a/frontend/src/lib/components/common/toggleButton-v2/ToggleButtonMore.svelte +++ b/frontend/src/lib/components/common/toggleButton-v2/ToggleButtonMore.svelte @@ -4,6 +4,7 @@ import Popover from '$lib/components/Popover.svelte' import DropdownV2 from '$lib/components/DropdownV2.svelte' import ToggleButton from '$lib/components/common/toggleButton-v2/ToggleButton.svelte' + import Tooltip from '$lib/components/meltComponents/Tooltip.svelte' type TogglableItem = { label: string @@ -20,6 +21,7 @@ togglableItems: TogglableItem[] btnText?: string class?: string + hideSelectedOption?: boolean } let { @@ -30,7 +32,8 @@ selected = $bindable(undefined), togglableItems, btnText, - class: className = '' + class: className = '', + hideSelectedOption = false }: Props = $props() let items = untrack(() => togglableItems).map((i) => ({ @@ -51,7 +54,7 @@ disappearTimeout={0} >
- {#if isAnOptionSelected(selected)} + {#if isAnOptionSelected(selected) && !hideSelectedOption} {@const tooltip = togglableItems.find((i) => i.value === selected)?.tooltip} {/if}
- + + + +