Fix UI freeze when discarding changes caused by async MQTT state #891
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Bei Fahrzeug Konfiguration UI Render Problem bei Bestätigung von "Änderungen verwerfen" Dialog.
Durch das Zurücksetzen werden MQTT-Topics kurzzeitig entfernt und anschließend erneut abonniert. In dieser Phase waren einzelne Store-Einträge undefined, während das Template weiterhin davon ausging, dass vollständige Objekte vorhanden sind.
Dadurch kam es zu Zugriffen auf nicht existierende Properties (z. B. .length, .manufacturer, .name), was zu Laufzeitfehlern führte. In der Folge blieben Bestätigungs-Dialoge geöffnet und die Seite war nicht mehr bedienbar.
Lösung:
• Optional Chaining im Template
Alle Zugriffe auf verschachtelte, asynchron geladene Store-Daten verwenden nun optional chaining (?.). Dadurch werden Zugriffe auf temporär nicht verfügbare Objekte sicher abgefangen.
• Gefilterte Computed Properties für Templates
Die Computed Properties evTemplates und chargeTemplates filtern ungültige bzw. nicht geladene Einträge und geben ausschließlich gültige Objekte zurück.