From e29d38fa329f20c1c6a00f44ea54056efc0b8015 Mon Sep 17 00:00:00 2001 From: Imran Remtulla Date: Sun, 25 Dec 2022 20:04:47 -0500 Subject: [PATCH] Adding an existing category no longer overwrites it --- lib/components/generated_form.dart | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/lib/components/generated_form.dart b/lib/components/generated_form.dart index bc0e237..37ce543 100644 --- a/lib/components/generated_form.dart +++ b/lib/components/generated_form.dart @@ -152,7 +152,7 @@ class _GeneratedFormState extends State { } // Generates a random light color -// Courtesy of ChatGPT 😭 (with a bugfix 🥳) + // Courtesy of ChatGPT 😭 (with a bugfix 🥳) Color generateRandomLightColor() { // Create a random number generator final Random random = Random(); @@ -389,17 +389,19 @@ class _GeneratedFormState extends State { var temp = values[widget.items[r][e].key] as Map>?; temp ??= {}; - var singleSelect = - (widget.items[r][e] as GeneratedFormTagInput) - .singleSelect; - var someSelected = temp.entries - .where((element) => element.value.value) - .isNotEmpty; - temp[label] = MapEntry( - generateRandomLightColor().value, - !(someSelected && singleSelect)); - values[widget.items[r][e].key] = temp; - someValueChanged(); + if (temp[label] == null) { + var singleSelect = + (widget.items[r][e] as GeneratedFormTagInput) + .singleSelect; + var someSelected = temp.entries + .where((element) => element.value.value) + .isNotEmpty; + temp[label] = MapEntry( + generateRandomLightColor().value, + !(someSelected && singleSelect)); + values[widget.items[r][e].key] = temp; + someValueChanged(); + } }); } });