eclipsesource / eclipsesource/jsonforms

Square brackets in property name causes object to be destructured to many nested objects

Open
#2,178 2 comments 0 reactions 0 assignees View on GitHub
bug core
Dominant language
TypeScript
Stars
2.7k
Forks
424
Avg merge
17d 8h
Merged PRs (30d)
1

Description

### Describe the bug

Names of properties cannot have square brackets inside. After changing initial data property name gets restructured in nested object.

### Expected behavior

Structure of data object does not change

### Steps to reproduce the issue

1. Clone `https://github.com/mateuszkula/jsonforms-react-error`
2. Run `npm ci` & `npm run start`
3. Go to `localhost:3000`
4. Find Input for label `A` -> type 1 in field `Min`
5. Data changes from:
```
{
"a[b][c][d]": {
"min": 0,
"max": 1
},
"a": {
"min": 1,
"max": 1
}
}
```
to
```
{
"a[b][c][d]": {
"min": 0,
"max": 1
},
"a": {
"min": 0,
"max": 1
}
}
```
6. Modify `Min` field for `A B C D` and type some number there. Data changes from:
```
{
"a[b][c][d]": {
"min": 0,
"max": 1
},
"a": {
"min": 1,
"max": 1
}
}
```
to
```
{
"a[b][c][d]": {
"min": 0,
"max": 1
},
"a": {
"min": 1,
"max": 1,
"b": {
"c": {
"d": {
"min": 3
}
}
}
}
}
```

### Screenshots

Before entering data:
![image](https://github.com/eclipsesource/jsonforms/assets/30259869/ef846713-b5e5-4c7f-b853-985d0338db29)

After changing data:
![image](https://github.com/eclipsesource/jsonforms/assets/30259869/16ad8733-4b71-4d4e-a562-5f32c20d8e16)

### In which browser are you experiencing the issue?

Firefox 117.0.1 (64-bit) / Chrome Version 116.0.5845.187 (Official Build) (arm64)

### Which Version of JSON Forms are you using?

v3.1.0

### Framework

Core, React

### RendererSet

Material

### Additional context

I think quite similar issue is described in `https://github.com/eclipsesource/jsonforms/issues/2102` but i could not force it to behave in same wrong way like in my example.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.