implement cherrypick_flutter library

This commit is contained in:
Sergey Penkovsky
2025-05-02 11:42:32 +03:00
parent f6da7568fe
commit e1a556d193
12 changed files with 442 additions and 1 deletions

View File

@@ -0,0 +1,3 @@
library cherrypick_flutter;
export 'src/cherrypick_provider.dart';

View 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;
}
}