triggerRandomRadioInEachGroup function

void triggerRandomRadioInEachGroup(
  1. 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}');
    }
  });
}