clearSignalsAndEffects method

void clearSignalsAndEffects()

Reset all stored signals and effects

Implementation

void clearSignalsAndEffects() {
  _cleanup?.call();
  _cleanup = null;
  // Snapshot collections to prevent ConcurrentModificationError
  // dispose() and effect cleanup can trigger mutations
  final local = _signals.values
      .where((e) => e.local == true)
      .map((e) => e.target)
      .toList();
  for (final s in local) {
    s.dispose();
  }
  final effects = List<EffectCleanup>.of(_effects);
  for (final cb in effects) {
    cb();
  }
  _effects.clear();
  _signals.clear();
}