muteable_notifiers 1.0.7 copy "muteable_notifiers: ^1.0.7" to clipboard
muteable_notifiers: ^1.0.7 copied to clipboard

Implementations of ChangeNotifier and ValueNotifier that can be muted for single/multiple calls.

muteable_notifier #

Extensions of ChangeNotifier and ValueNotifier that allow for temporarily muting the notifier in question.

MuteableChangeNotifier/MuteableValueNotifier.muteNext() mutes only the next call to "notifyListeners," and then returns to the previous mute state, whether it was muted or unmuted.

MuteableChangeNotifier/MuteableValueNotifier.mute() and .unmute() toggle the mute state on and off.

MuteableChangeNotifier/MuteableValueNotifier.doMuted(Function fn) mutes the notifier, executes the function, then returns to the previous mute state.

Getting Started #

Create a subclass of MuteableChangeNotifier or MuteableValueNotifier.

class MyChangeNotifier extends MuteableChangeNotifier {
  String _field;
  String get field => _field;

  void setField(String newValue) {
    if (newValue == _field) {
      return;
    }
    _field = newValue;
    notifyListeners();
  }

  ...
}

class MyStringValueNotifier extends MuteableValueNotifier<String> {
  MyStringValueNotifier(String value) : super(value);
}

You can then use the various mute functions to "turn off" any calls to notifyListeners while the classes are muted.


var muteableChangeNotifier = new MyChangeNotifier(field: "initial field value");
muteableChangeNotifier.addListener(someListenerFunction);

// someListenerFunction is called.
muteableChangeNotifier.field = "second value";

muteableChangeNotifier.muteNext();
// someListenerFunction is NOT called due to `muteNext`, but `field` is still updated.
muteableChangeNotifier.field = "third field value";

// someListenerFunction IS called, as only the previous call was muted by `muteNext`.
muteableChangeNotifier.field = "fourth field value";

muteableChangeNotifier.mute();
// someListenerFunction is NOT called until `muteableChangeNotifier.unmute()` is invoked.
muteableChangeNotifier.field = "fifth field value";
muteableChangeNotifier.field = "sixth field value";
muteableChangeNotifier.field = "seventh field value";

muteableChangeNotifier.unmute();
// someListenerFunction IS called, now that the notifier has been unmuted.
muteableChangeNotifier.field = "final field value";
1
likes
140
pub points
30%
popularity

Publisher

unverified uploader

Implementations of ChangeNotifier and ValueNotifier that can be muted for single/multiple calls.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

flutter

More

Packages that depend on muteable_notifiers