5minds / node-red-dashboard-2-processcube-dynamic-form

The ui component for the ProcessCube dynamic-form
Apache License 2.0
0 stars 0 forks source link

Enum - Initialer Wert wird falsch angezeigt. #9

Open matthiasdanne opened 3 weeks ago

matthiasdanne commented 3 weeks ago

Wir haben bei ichbindeinauto das Problem, dass im enum der dynamic-form die Werte initial nicht korrekt angezeigt werden (lauter [object Object] Einträge). Wenn man dann einen Wert auswählen will, funktioniert es korrekt. Ich habe den defaultValue gesetzt, weil ich dachte, dass dies den initialen Wert setzt, das hat aber nicht funktioniert.

https://github.com/user-attachments/assets/a5b94eb9-0e9b-4ad5-95a0-c8d2c6338492

Hier kann man den flow nachvollziehen: https://nodered.ichbindeinauto.dev.5minds.cloud/#flow/6875b2dc34d237ed

Generell musste ich die Payload für das Enum noch etwas parsen, weswegen ich die Werte aus der userTask.userTaskConfig komplett angepasst habe:

const organisationen = msg.payload.userTask.startToken.organisationen;
const enumValues = msg.payload.userTask.userTaskConfig.formFields[0].enumValues;

const enumValuesMap = enumValues.reduce((map, enumValue) => {
  map[enumValue.id] = enumValue;
  return map;
}, {});

const mappedArray = organisationen.map(token => {
  return {
    id: token.ID_Organisation,
    name: token.Firmierung 
  };
});

mappedArray.sort((a, b) => a.name.localeCompare(b.name));

msg.payload.userTask.userTaskConfig.formFields[0].enumValues = mappedArray;
msg.payload.userTask.userTaskConfig.formFields[0].defaultValue = mappedArray[0];

return msg;
matthiasdanne commented 3 weeks ago

Ok, ich werde das enum durch eine Tabelle ersetzen, da es im Bezug auf UX besser ist (Suchleiste, mehr Informationen anzeigbar, etc.)

Trotzdem sollte man die Unterstützung von enums nochmal überprüfen.