Skip to content

AutoObject should display arrays #20

@mingfang

Description

@mingfang

Given an object like with an array field, e.g.

let test = {
    array: ['a', 'b', 'c']
}

AutoObject prints this error

No matching controller for 'array'

Ideally AutoObject can display the array like this
image

This is the possible code change in AutoObject

{#each Object.keys(object) as key (key)}

{#each Object.keys(object) as key (key)}
    {#if object[key].constructor === Object}
        <Folder title={prettify(key)}>
            <AutoObject bind:object={object[key]}/>
        </Folder>
    {:else if typeof object[key] === 'string'}
        <Text
                bind:value={object[key]}
                label={prettify(key)}
        />
    {:else if Array.isArray(object[key])}
        <Folder title={prettify(key)}>
            {#each object[key].map((value, i)=> ({[i]: value})) as value}
                <AutoObject bind:object={value}/>
            {/each}
        </Folder>
    {:else}
        <Binding
                bind:object
                {key}
                label={prettify(key)}
        />
    {/if}
{/each}

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions