run method

DepSubscription run(
  1. VoidCallback callback, {
  2. bool runNow = false,
})

Runs callback whenever ANY of the dependent fields changes.

  • Debounce/throttle can be added later without changing call sites.
  • Optionally runs once immediately via runNow.

Implementation

DepSubscription run(
    VoidCallback callback, {
      bool runNow = false,
    }) {
  for (final name in _fields) {
    if (!_registered.add(name)) continue;

    final control = _deps.form.control<dynamic>(name);

    void handler() => callback();

    control.valueNotifier.addListener(handler);
    _deps._track(() => control.valueNotifier.removeListener(handler));
  }

  if (runNow) callback();
  return this;
}