Skip to content

Commit ce843d1

Browse files
Merge pull request #41 from leancodepl/fix/make-paginated-cubit-layout-rebuild-children
Rebuild paginated cubit layout children on state change
2 parents 8f0079a + 328fb5c commit ce843d1

3 files changed

Lines changed: 19 additions & 5 deletions

File tree

packages/leancode_cubit_utils/CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
## 0.3.1
2+
3+
* Rename `headerBuilder` and `footerBuilder` to `headerSliverBuilder` and `footerSliverBuilder` in `PaginatedCubitLayout`
4+
* Rebuild `headerSliverBuilder` and `footerSliverBuilder` on `PaginatedCubit` state change
5+
16
## 0.3.0
27

38
* Export `RequestCubitConfig` from `leancode_cubit_utils.dart`

packages/leancode_cubit_utils/lib/src/paginated/paginated_cubit_layout.dart

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ typedef PaginatedErrorBuilder<TItem> = Widget Function(
2828
VoidCallback retry,
2929
);
3030

31+
typedef _PaginatedCubitBlocBuilder<TData, TItem> = BlocBuilder<
32+
PaginatedCubit<TData, dynamic, dynamic, TItem>,
33+
PaginatedState<TData, TItem>>;
34+
3135
/// A layout for a paginated cubit.
3236
class PaginatedCubitLayout<TData, TItem> extends StatelessWidget {
3337
/// Creates a PaginatedCubitLayout.
@@ -94,9 +98,11 @@ class PaginatedCubitLayout<TData, TItem> extends StatelessWidget {
9498
physics: physics,
9599
slivers: [
96100
if (headerSliverBuilder case final headerSliverBuilder?)
97-
headerSliverBuilder(context, cubit.state),
98-
BlocBuilder<PaginatedCubit<TData, dynamic, dynamic, TItem>,
99-
PaginatedState<TData, TItem>>(
101+
_PaginatedCubitBlocBuilder<TData, TItem>(
102+
bloc: cubit,
103+
builder: headerSliverBuilder,
104+
),
105+
_PaginatedCubitBlocBuilder<TData, TItem>(
100106
bloc: cubit,
101107
builder: (context, state) {
102108
return switch (state.type) {
@@ -120,7 +126,10 @@ class PaginatedCubitLayout<TData, TItem> extends StatelessWidget {
120126
},
121127
),
122128
if (footerSliverBuilder case final footerSliverBuilder?)
123-
footerSliverBuilder(context, cubit.state),
129+
_PaginatedCubitBlocBuilder<TData, TItem>(
130+
bloc: cubit,
131+
builder: footerSliverBuilder,
132+
),
124133
],
125134
);
126135
}

packages/leancode_cubit_utils/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: leancode_cubit_utils
22
description: A collection of cubits and widgets that facilitate the creation of repetitive pages, eliminating boilerplate.
3-
version: 0.3.0
3+
version: 0.3.1
44
repository: https://github.com/leancodepl/leancode_cubit_utils
55

66
environment:

0 commit comments

Comments
 (0)