This commit is contained in:
2025-04-27 14:22:57 +03:00
parent 569750c6c3
commit 1dae29f031
2 changed files with 19 additions and 11 deletions

View File

@@ -124,8 +124,10 @@ class AstromicSheetHelper {
radius: sheetStyle.radius,
//
child: ChangeNotifierProvider<SheetStore>(
create: (BuildContext c) => SheetStore(),
child: BaseSheetWidget<T?>(
create: (BuildContext c) => store,
child: ListenableBuilder(
listenable: store,
builder: (_, __) => BaseSheetWidget<T?>(
sheetType: SheetType.form,
//
sheetConfiguration: sheetConfigs,
@@ -136,6 +138,7 @@ class AstromicSheetHelper {
footerSectionFormBuilder: footerSectionBuilder == null ? null : (AstromicFormController controller) => footerSectionBuilder.call(controller, store),
),
),
),
);
}
@@ -208,7 +211,7 @@ class AstromicSheetHelper {
sheetConfiguration: sheetConfigs,
sheetStyle: sheetStyle,
headSectionScrollerBuilder: headSectionBuilder == null ? null : (ScrollController controller) => headSectionBuilder.call(controller, store),
contentSectionScrollBuilder: (ScrollController controller, ScrollPhysics physics) => contentSectionBuilder(controller,physics, store),
contentSectionScrollBuilder: (ScrollController controller, ScrollPhysics physics) => contentSectionBuilder(controller, physics, store),
footerSectionScrollerBuilder: footerSectionBuilder == null ? null : (ScrollController controller) => footerSectionBuilder.call(controller, store),
scrollController: scrollController,
scrollPhysics: scrollPhysics,

View File

@@ -1,3 +1,6 @@
// ignore_for_file: close_sinks
import 'dart:async';
import 'dart:collection';
import 'package:flutter/widgets.dart';
@@ -9,6 +12,8 @@ class SheetStore extends ChangeNotifier {
/// An unmodifiable view of the items in the store.
UnmodifiableMapView<String, dynamic> get items => UnmodifiableMapView<String, dynamic>(_items);
static final StreamController<UnmodifiableMapView<String, dynamic>> _stateStreamController = StreamController<UnmodifiableMapView<String, dynamic>>.broadcast();
final Stream<UnmodifiableMapView<String, dynamic>> stateStream = _stateStreamController.stream;
/// Adds [item] to store.
void add(String itemID, dynamic value) {
_items.addEntries(<MapEntry<String, dynamic>>[MapEntry<String, dynamic>(itemID, value)]);