improve oneOf handling

This commit is contained in:
Ruben Fiszel
2024-12-19 14:37:04 +01:00
parent c688780b39
commit cffe5d451b
2 changed files with 9 additions and 10 deletions

View File

@@ -658,11 +658,11 @@
<div class="flex flex-col gap-2 w-full">
{#if oneOf && oneOf.length >= 2}
<ToggleButtonGroup
bind:selected={oneOfSelected}
on:selected={() => {
value = {}
value = { label: oneOfSelected }
redraw += 1
}}
bind:selected={oneOfSelected}
>
{#each oneOf as obj}
<ToggleButton value={obj.title} label={obj.title} />
@@ -680,10 +680,8 @@
{disablePortal}
{disabled}
schema={{
properties: Object.fromEntries(
Object.entries(obj.properties).filter(([k, v]) => k !== 'label')
),
order: obj.order?.filter((k) => k !== 'label') ?? undefined,
properties: obj.properties,
order: obj.order,
$schema: '',
required: obj.required ?? [],
type: 'object'
@@ -703,11 +701,10 @@
{onlyMaskPassword}
{disablePortal}
{disabled}
schemaSkippedValues={['label']}
schema={{
properties: Object.fromEntries(
Object.entries(obj.properties).filter(([k, v]) => k !== 'label')
),
order: obj.order?.filter((k) => k !== 'label') ?? undefined,
properties: obj.properties,
order: obj.order,
$schema: '',
required: obj.required ?? [],
type: 'object'

View File

@@ -14,6 +14,7 @@
export let onlyMaskPassword: boolean = false
export let disablePortal: boolean = false
export let disabled: boolean = false
export let schemaSkippedValues: string[] = []
const dispatch = createEventDispatcher()
const flipDurationMs = 200
@@ -65,6 +66,7 @@
<!-- svelte-ignore a11y-no-static-element-interactions -->
<!-- svelte-ignore a11y-no-noninteractive-tabindex -->
<SchemaForm
{schemaSkippedValues}
on:click
on:change
on:reorder