Fix: studio now handles arrays better (might fix #2102)
This commit is contained in:
parent
e09af8fcb9
commit
0c9e41a6ce
3 changed files with 14 additions and 10 deletions
|
@ -39,16 +39,20 @@
|
|||
}
|
||||
|
||||
function fusePath(subpartPath: string[]): (string | number)[] {
|
||||
const newPath = [...path]
|
||||
const toAdd = [...subpartPath]
|
||||
for (const part of path) {
|
||||
if (toAdd[0] === part) {
|
||||
toAdd.splice(0, 1)
|
||||
} else {
|
||||
break
|
||||
const newPath = [...path] // has indices, e.g. ["A", 1, "B", "C", 2]
|
||||
const toAdd = [...subpartPath] // doesn't have indices, e.g. ["A", "B", "C", "D"]
|
||||
|
||||
let indexInToAdd = 0
|
||||
for (let i = 0; i < newPath.length; i++) {
|
||||
if(newPath[i] === toAdd[indexInToAdd]){
|
||||
indexInToAdd ++
|
||||
}
|
||||
}
|
||||
newPath.push(...toAdd)
|
||||
|
||||
// indexToAdd should now point to the last common index, '2' in the example
|
||||
const resting = toAdd.slice(indexInToAdd)
|
||||
|
||||
newPath.push(...resting)
|
||||
return newPath
|
||||
}
|
||||
|
||||
|
|
|
@ -204,7 +204,7 @@ export abstract class EditJsonState<T> {
|
|||
|
||||
for (let i = 0; i < path.length - 1; i++) {
|
||||
const breadcrumb = path[i]
|
||||
if (entry[breadcrumb] === undefined) {
|
||||
if (entry[breadcrumb] === undefined || entry[breadcrumb] === null) {
|
||||
if (isUndefined) {
|
||||
// we have a dead end _and_ we do not need to set a value - we do an early return
|
||||
return
|
||||
|
|
|
@ -105,7 +105,7 @@
|
|||
</div>
|
||||
{/each}
|
||||
{:else}
|
||||
<Accordion>
|
||||
<Accordion> <!-- The CollapsedTagRenderingPreview contains the accordeon items -->
|
||||
{#each $currentValue as value, i}
|
||||
<CollapsedTagRenderingPreview
|
||||
{state}
|
||||
|
|
Loading…
Reference in a new issue