fix: nested schemas can use required

This commit is contained in:
Ruben Fiszel
2023-11-17 14:38:00 +01:00
parent 2b249518ad
commit 33dfcfbdc7
7 changed files with 13 additions and 4 deletions
+2 -1
View File
@@ -51,6 +51,7 @@
| undefined = undefined
export let displayHeader = true
export let properties: { [name: string]: SchemaProperty } | undefined = undefined
export let nestedRequired: string[] | undefined = undefined
export let autofocus = false
export let compact = false
export let password = false
@@ -390,7 +391,7 @@
<SchemaForm
{disablePortal}
{disabled}
schema={{ properties, $schema: '', required: [], type: 'object' }}
schema={{ properties, $schema: '', required: nestedRequired ?? [], type: 'object' }}
bind:args={value}
/>
</div>
@@ -300,6 +300,7 @@
contentEncoding={schema.properties[argName].contentEncoding}
bind:itemsType={schema.properties[argName].items}
properties={schema.properties[argName].properties}
nestedRequired={schema.properties[argName].required}
displayHeader={false}
extra={argExtra}
{variableEditor}
@@ -40,6 +40,7 @@
| undefined = undefined
export let displayHeader = true
export let properties: { [name: string]: SchemaProperty } | undefined = undefined
export let nestedRequired: string[] | undefined = undefined
export let extra: Record<string, any> = {}
export let displayType: boolean = true
@@ -277,7 +278,7 @@
{#if properties && Object.keys(properties).length > 0}
<div class="p-4 pl-8 border rounded w-full">
<LightweightSchemaForm
schema={{ properties, $schema: '', required: [], type: 'object' }}
schema={{ properties, $schema: '', required: nestedRequired ?? [], type: 'object' }}
bind:args={value}
/>
</div>
@@ -76,6 +76,7 @@
format={schema.properties[argName].format}
contentEncoding={schema.properties[argName].contentEncoding}
properties={schema.properties[argName].properties}
nestedRequired={schema.properties[argName].required}
itemsType={schema.properties[argName].items}
extra={schema.properties[argName]}
on:inputClicked
@@ -92,6 +92,7 @@
format={schema.properties[argName].format}
contentEncoding={schema.properties[argName].contentEncoding}
properties={schema.properties[argName].properties}
nestedRequired={schema.properties[argName].required}
itemsType={schema.properties[argName].items}
extra={schema.properties[argName]}
/>
@@ -270,12 +270,12 @@
</script>
<div class="flex flex-col">
<div class="flex justify-between gap-x-2">
<div class="flex justify-between items-center gap-x-2">
<div>
<Button
variant="contained"
color="dark"
size="sm"
size={lightMode ? 'xs2' : 'sm'}
startIcon={{ icon: Plus }}
on:click={() => {
schemaModal.openDrawer(Object.assign({}, DEFAULT_PROPERTY))
@@ -288,6 +288,7 @@
<div class="flex items-center">
<Toggle
size={lightMode ? 'xs' : 'sm'}
on:change={() => switchTab()}
options={{
right: 'As JSON'
@@ -342,6 +343,7 @@
{:else}
<div class="border rounded p-2">
<SimpleEditor
small
bind:this={jsonEditor}
fixedOverflowWidgets={false}
on:change={() => {
@@ -103,6 +103,7 @@
bind:format={schema.properties[argName].format}
contentEncoding={schema.properties[argName].contentEncoding}
properties={schema.properties[argName].properties}
nestedRequired={schema.properties[argName].required}
bind:itemsType={schema.properties[argName].items}
disabled={disabledArgs.includes(argName) || disabled}
{editableSchema}
@@ -131,6 +132,7 @@
format={schema.properties[argName].format}
contentEncoding={schema.properties[argName].contentEncoding}
properties={schema.properties[argName].properties}
nestedRequired={schema.properties[argName].required}
itemsType={schema.properties[argName].items}
disabled={disabledArgs.includes(argName) || disabled}
{compact}