kolibri icon indicating copy to clipboard operation
kolibri copied to clipboard

🐞 Bug: `input-radio` akzeptiert keine stringifizierten Zahlenwerte

Open laske185 opened this issue 1 year ago • 7 comments

Fehlermeldung

Beschreibung des Fehlers

Sind die Werte eines input-radio stringifizierte Zahlenwerte, wird nicht der gesetzte Wert gesetzt.

Reproduktion

<KolInputRadio
  _label={'Radio group'}
  _value="310002"
  _options={[
    { label: 'Ja', value: '310000' },
    { label: 'Nein', value: '310001' },
    { label: 'Unbekannt', value: '310002' },
  ]}
/>

Wird der Wert alphanumerisch, funktioniert es:

<KolInputRadio
  _label={'Radio group 2'}
  _value="A310002"
  _options={[
    { label: 'Ja', value: 'A310000' },
    { label: 'Nein', value: 'A310001' },
    { label: 'Unbekannt', value: 'A310002' },
  ]}
/>

Link zu StackBlitz

Erwartetes Verhalten

Der gesetzte Wert von _value wird auch ausgewählt.

Screenshots

image

Zusätzlicher Kontext

Der Bug wurde intern gemeldet.

laske185 avatar Jan 31 '24 07:01 laske185

Das folgende Ticket kann man ggf. gut mit diesem zusammen bearbeiten: https://github.com/public-ui/kolibri/issues/5992

deleonio avatar Feb 01 '24 07:02 deleonio

Ich würde mir das mal anschauen. Kann mich leider nicht auf das Ticket assignen, desshalb der Kommentar. :)

KawaiiMochiAhri avatar Feb 02 '24 08:02 KawaiiMochiAhri

Also meine Lösung funktioniert soweit. Frage ist nur, ob das so elegant ist. Und an einer Stelle könnte man bestimmt noch refaktorn, aber ich war mir nicht sicher, inwiefern die abfolge des Codes wichtig ist.

KawaiiMochiAhri avatar Feb 05 '24 10:02 KawaiiMochiAhri

Ich konnte das Problem auf Ebene der Web Components nicht reproduziert. Alle Typen der bleiben stabil.

  • [x] v1: https://github.com/public-ui/kolibri/tree/5196c72973346a1223591dcfc4e7019222ca7dc4
  • [x] v2: https://github.com/public-ui/kolibri/tree/737948adb7350359fa2173077042b92d2ead575a

Wir sollten das Beispiel nun im React-Kontext ausprobieren.

  • [ ] v1:
  • [ ] v2:

deleonio avatar Feb 12 '24 05:02 deleonio

@deleonio in dem Beispiel oben von @laske185 entspricht der value bei beiden Beispielen nicht dem was mit _options mitgegeben wurde. Der erste Radiobutton hat einen value von -0, der nächste -1 usw.

Bildschirmfoto 2024-04-03 um 10 32 08

Hier https://github.com/public-ui/kolibri/issues/2152 wurde ja schonmal geschrieben, warum das so ist. Allerdings wird das onChange-Event nicht mehr vom InputRadio aufgerufen und onInput hat keinen Value. Somit funktioniert der "Workaround" auch nicht mehr.

In Version 2 von KoliBri werden wir auch statische Formulare voll unterstützen und dafür wird hier, wie Du auch erwartest, wieder genau der Wert stehen, den Du reingegeben hast. (Ist für static Forms nötig) Der Komfort für die App-Entwicklung wird wegfallen, kann aber mittels Formatter/Parsern vor Inputs leicht gehandled werden.

Lt. #2152 wolltet ihr ab v2.0 die Platzhalter-Values wieder entfernen. Gab es einen Grund warum das doch nicht passiert ist?

Chrisdo82 avatar Apr 03 '24 08:04 Chrisdo82

Hallo @Chrisdo82,

danke für den Hinweis aus dem Ticket #2152. Das Angleichen des Wertes im DOM und im JavaScript ist weiterhin der Plan.

Da der Wert bei Eingabefeldern mit KoliBri immer aus der onChange / onInput geholt werden soll, seit Anfang an, gab es keinen dringenden Grund die Änderung vorzuziehen.

Die Unterstützung statischer Formulare ist auch in Version 2 noch experimentell, wobei es schon zahlreich erfolgreich eingesetzt wird. Ausnahme sollte das Radio sein.

Hier haben wir auch eine Demo dazu: https://public-ui.github.io/v2/sample-react/#/scenarios/static-form


Was hindert Euch daran, einfach den Value aus den Events - onChange und onInput zu verwenden, wie das seit jeher funktioniert?

deleonio avatar Apr 25 '24 05:04 deleonio

Was hindert Euch daran, einfach den Value aus den Events - onChange und onInput zu verwenden, wie das seit jeher funktioniert?

@deleonio in der Version 2.0.12 wurde kein Value beim onInput mitgegeben, was die Komponente für uns unbrauchbar gemacht hat. Deshalb hatte ich hier auch nochmal dazu geschrieben. Mit der 2.0.14 geht es aber wieder.

Chrisdo82 avatar May 02 '24 11:05 Chrisdo82