diff --git a/lib/pangea/choreographer/widgets/choice_array.dart b/lib/pangea/choreographer/widgets/choice_array.dart index 32395099e..9aa74afac 100644 --- a/lib/pangea/choreographer/widgets/choice_array.dart +++ b/lib/pangea/choreographer/widgets/choice_array.dart @@ -20,6 +20,10 @@ class ChoicesArray extends StatefulWidget { final String originalSpan; final String Function(int) uniqueKeyForLayerLink; + /// Used to unqiuely identify the keys for choices, in cases where multiple + /// choices could have identical text, like in back-to-back practice activities + final String? id; + /// some uses of this widget want to disable clicking of the choices final bool isActive; @@ -33,6 +37,7 @@ class ChoicesArray extends StatefulWidget { required this.selectedChoiceIndex, this.isActive = true, this.onLongPress, + this.id, }); @override @@ -77,6 +82,7 @@ class ChoicesArrayState extends State { enableInteraction: enableInteractions, disableInteraction: disableInteraction, isSelected: widget.selectedChoiceIndex == index, + id: widget.id, ), ) .toList(), @@ -107,6 +113,7 @@ class ChoiceItem extends StatelessWidget { required this.interactionDisabled, required this.enableInteraction, required this.disableInteraction, + required this.id, }); final MapEntry entry; @@ -117,6 +124,7 @@ class ChoiceItem extends StatelessWidget { final bool interactionDisabled; final VoidCallback enableInteraction; final VoidCallback disableInteraction; + final String? id; @override Widget build(BuildContext context) { @@ -127,7 +135,7 @@ class ChoiceItem extends StatelessWidget { ? const Duration(milliseconds: 500) : const Duration(days: 1), child: ChoiceAnimationWidget( - key: ValueKey(entry.value.text), + key: ValueKey("${entry.value.text}$id"), selected: entry.value.color != null, isGold: entry.value.isGold, enableInteraction: enableInteraction, diff --git a/lib/pangea/widgets/practice_activity/multiple_choice_activity.dart b/lib/pangea/widgets/practice_activity/multiple_choice_activity.dart index 2eb4c3523..e8112ea79 100644 --- a/lib/pangea/widgets/practice_activity/multiple_choice_activity.dart +++ b/lib/pangea/widgets/practice_activity/multiple_choice_activity.dart @@ -137,6 +137,7 @@ class MultipleChoiceActivityState extends State { ) .toList(), isActive: true, + id: currentRecordModel?.hashCode.toString(), ), ], ),