eclipsesource / eclipsesource/jsonforms
Square brackets in property name causes object to be destructured to many nested objects
- Vorherrschende Sprache
- TypeScript
- Sterne
- 2.7k
- Forks
- 424
- Ø Merge
- 17 T. 8 Std.
- Gemergte PRs (30 T.)
- 1
Beschreibung
### 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:

After changing data:

### 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.
Beitragsleitfaden
Rechercherichtung
Klone die verlinkte jsonforms-react-error-Reproduktion, führe `npm ci` und `npm run start` aus und befolge die gemeldeten Min-field-Schritte für `A` und `A B C D`. Untersuche, warum das Bearbeiten dieser Felder `a[b][c][d]` in verschachtelte Objekte ändert; abgeschlossen ist die Untersuchung, wenn das Datenobjekt den literalen Eigenschaftsnamen und die Struktur beibehält.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- react, typescript
- Bereich
- frontend
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100