23 lines
558 B
Dart
23 lines
558 B
Dart
import 'package:flutter/foundation.dart';
|
|
|
|
/// Adds [safeNotifyListeners] which no-ops after [dispose]. Use in providers
|
|
/// that fire from async paths where a late callback could otherwise trip
|
|
/// Flutter's debug-only "used after dispose" assert.
|
|
mixin DisposableChangeNotifierMixin on ChangeNotifier {
|
|
bool _disposed = false;
|
|
|
|
bool get isDisposed => _disposed;
|
|
|
|
bool safeNotifyListeners() {
|
|
if (_disposed) return false;
|
|
notifyListeners();
|
|
return true;
|
|
}
|
|
|
|
@override
|
|
void dispose() {
|
|
_disposed = true;
|
|
super.dispose();
|
|
}
|
|
}
|