Skip to content

Commit 95351fd

Browse files
Rebuild paginated cubit layout children on state changes
Make header and footer builders rebuild on state change
1 parent 4da6f50 commit 95351fd

1 file changed

Lines changed: 13 additions & 4 deletions

File tree

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
}

0 commit comments

Comments
 (0)