WebUI: Replace illegal nested button elements (#21026)

* remove/replace nested button elements

* map rest props to outer element

* solve TODO

* chore: update webui build output
This commit is contained in:
BlueMöhre
2026-03-28 17:57:59 +01:00
committed by GitHub
parent e397d3885c
commit 968189729f
3 changed files with 53 additions and 45 deletions
Binary file not shown.
@@ -18,7 +18,8 @@
showRaw = undefined, showRaw = undefined,
aliases, aliases,
tags, tags,
class: className = '' class: className = '',
...rest
}: Props = $props(); }: Props = $props();
const badgeClass = const badgeClass =
@@ -36,9 +37,9 @@
</script> </script>
{#if resolvedShowRaw} {#if resolvedShowRaw}
<TruncatedText class="font-medium {className}" showTooltip={false} text={modelId} /> <TruncatedText class="font-medium {className}" showTooltip={false} text={modelId} {...rest} />
{:else} {:else}
<span class="flex min-w-0 flex-wrap items-center gap-1 {className}"> <span class="flex min-w-0 flex-wrap items-center gap-1 {className}" {...rest}>
<span class="min-w-0 truncate font-medium"> <span class="min-w-0 truncate font-medium">
{#if showOrgName && parsed.orgName && !(aliases && aliases.length > 0)}{parsed.orgName}/{/if}{displayName} {#if showOrgName && parsed.orgName && !(aliases && aliases.length > 0)}{parsed.orgName}/{/if}{displayName}
</span> </span>
@@ -271,14 +271,6 @@
{#if isRouter} {#if isRouter}
<DropdownMenu.Root bind:open={isOpen} onOpenChange={handleOpenChange}> <DropdownMenu.Root bind:open={isOpen} onOpenChange={handleOpenChange}>
<DropdownMenu.Trigger <DropdownMenu.Trigger
disabled={disabled || updating}
onclick={(e) => {
e.preventDefault();
e.stopPropagation();
}}
>
<button
type="button"
class={cn( class={cn(
`inline-grid cursor-pointer grid-cols-[1fr_auto_1fr] items-center gap-1.5 rounded-sm bg-muted-foreground/10 px-1.5 py-1 text-xs transition hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-60`, `inline-grid cursor-pointer grid-cols-[1fr_auto_1fr] items-center gap-1.5 rounded-sm bg-muted-foreground/10 px-1.5 py-1 text-xs transition hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-60`,
!isCurrentModelInCache !isCurrentModelInCache
@@ -297,8 +289,16 @@
{#if selectedOption} {#if selectedOption}
<Tooltip.Root> <Tooltip.Root>
<Tooltip.Trigger class="min-w-0 overflow-hidden"> <Tooltip.Trigger>
<ModelId modelId={selectedOption.model} class="min-w-0" showOrgName /> <!-- prevent another nested button element -->
{#snippet child({ props })}
<ModelId
modelId={selectedOption.model}
class="min-w-0 overflow-hidden"
showOrgName
{...props}
/>
{/snippet}
</Tooltip.Trigger> </Tooltip.Trigger>
<Tooltip.Content> <Tooltip.Content>
@@ -314,7 +314,6 @@
{:else} {:else}
<ChevronDown class="h-3 w-3.5" /> <ChevronDown class="h-3 w-3.5" />
{/if} {/if}
</button>
</DropdownMenu.Trigger> </DropdownMenu.Trigger>
<DropdownMenu.Content <DropdownMenu.Content
@@ -407,8 +406,16 @@
{#if selectedOption} {#if selectedOption}
<Tooltip.Root> <Tooltip.Root>
<Tooltip.Trigger class="min-w-0 overflow-hidden"> <Tooltip.Trigger>
<ModelId modelId={selectedOption.model} class="min-w-0" showOrgName /> <!-- prevent another nested button element -->
{#snippet child({ props })}
<ModelId
modelId={selectedOption.model}
class="min-w-0 overflow-hidden"
showOrgName
{...props}
/>
{/snippet}
</Tooltip.Trigger> </Tooltip.Trigger>
<Tooltip.Content> <Tooltip.Content>