createSimpleSelectListener function

void createSimpleSelectListener(
  1. Target target
)

create the listener for provider.select filter (SimpleProvider)

Implementation

void createSimpleSelectListener(Target target) {
  final notifier = target.notifier;
  // get an initial value using the callback
  dynamic prevValue = target.callback(notifier);
  target.selectValue = prevValue;

  // listener with  the logic to rebuild the Consumer
  // ignore: prefer_function_declarations_over_variables
  final listener = (_) {
    final value = target.callback(notifier);
    target.selectValue = value;
    // check if the value has changed
    if (prevValue != value || (value is bool && value)) {
      if (target.rebuild != null) {
        target.rebuild!(); // rebuild the Consumer
      }
    }
    prevValue = value;
  };
  // save the listener to be added to our Notifier later
  target.listener = listener;
}