mirror of
https://github.com/pese-git/cherrypick.git
synced 2026-01-24 05:25:19 +00:00
implement cherrypick_flutter library
This commit is contained in:
31
cherrypick_flutter/lib/src/cherrypick_provider.dart
Normal file
31
cherrypick_flutter/lib/src/cherrypick_provider.dart
Normal file
@@ -0,0 +1,31 @@
|
||||
import 'package:cherrypick/cherrypick.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
|
||||
class CherryPickProvider extends InheritedWidget {
|
||||
// Holds a reference to the root scope object
|
||||
final Scope rootScope;
|
||||
|
||||
// Constructor for CherryPickProvider. Initializes with a required rootScope and child widget.
|
||||
const CherryPickProvider({
|
||||
super.key,
|
||||
required this.rootScope,
|
||||
required super.child,
|
||||
});
|
||||
|
||||
// Method to access the nearest CherryPickProvider instance from the context
|
||||
static CherryPickProvider of(BuildContext context) {
|
||||
// Looks up the widget tree for an instance of CherryPickProvider
|
||||
final CherryPickProvider? result =
|
||||
context.dependOnInheritedWidgetOfExactType<CherryPickProvider>();
|
||||
// Assert to ensure a CherryPickProvider is present in the context
|
||||
assert(result != null, 'No CherryPickProvider found in context');
|
||||
return result!;
|
||||
}
|
||||
|
||||
// Determines whether the widget should notify dependents when it changes
|
||||
@override
|
||||
bool updateShouldNotify(CherryPickProvider oldWidget) {
|
||||
// Notify if the rootScope has changed
|
||||
return rootScope != oldWidget.rootScope;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user