triggerRandomRadioInEachGroup function
void
triggerRandomRadioInEachGroup(
- List foundWidgets
)
Implementation
void triggerRandomRadioInEachGroup(List<dynamic> foundWidgets) {
// Group radios by their groupValue
final radiosByGroup = <dynamic, List<dynamic>>{};
for (final widget in foundWidgets) {
final groupValue = (widget as dynamic).groupValue;
radiosByGroup.putIfAbsent(groupValue, () => []).add(widget);
}
debugPrint(
'${CmdOutputs.libraryHeader} Found ${radiosByGroup.length} radio groups with ${foundWidgets.length} total radios',
);
// Trigger random radio in each group
radiosByGroup.forEach((groupValue, radios) {
if (radios.isEmpty) return;
final randomRadio = radios[Random().nextInt(radios.length)];
final onChanged = (randomRadio as dynamic).onChanged;
final radioValue = randomRadio.value;
if (onChanged != null) {
(onChanged as dynamic).call(radioValue);
} else {
debugPrint('No onChanged for ${randomRadio.runtimeType}');
}
});
}