Browse Source

fix(neon): Require a scrollKey for NeonListView

Signed-off-by: jld3103 <jld3103yt@gmail.com>
pull/1007/head
jld3103 1 year ago
parent
commit
362edce158
No known key found for this signature in database
GPG Key ID: 9062417B9E8EB7B3
  1. 8
      packages/neon/neon/lib/src/widgets/list_view.dart
  2. 1
      packages/neon/neon/lib/src/widgets/unified_search_results.dart

8
packages/neon/neon/lib/src/widgets/list_view.dart

@ -8,8 +8,8 @@ class NeonListView extends StatelessWidget {
required this.error, required this.error,
required this.onRefresh, required this.onRefresh,
required final NullableIndexedWidgetBuilder itemBuilder, required final NullableIndexedWidgetBuilder itemBuilder,
required this.scrollKey,
final int? itemCount, final int? itemCount,
this.scrollKey,
this.topFixedChildren, this.topFixedChildren,
this.topScrollingChildren, this.topScrollingChildren,
super.key, super.key,
@ -23,7 +23,7 @@ class NeonListView extends StatelessWidget {
required this.error, required this.error,
required this.onRefresh, required this.onRefresh,
required this.sliver, required this.sliver,
this.scrollKey, required this.scrollKey,
this.topFixedChildren, this.topFixedChildren,
this.topScrollingChildren, this.topScrollingChildren,
super.key, super.key,
@ -32,7 +32,7 @@ class NeonListView extends StatelessWidget {
final bool isLoading; final bool isLoading;
final Object? error; final Object? error;
final RefreshCallback onRefresh; final RefreshCallback onRefresh;
final String? scrollKey; final String scrollKey;
final List<Widget>? topFixedChildren; final List<Widget>? topFixedChildren;
final List<Widget>? topScrollingChildren; final List<Widget>? topScrollingChildren;
final Widget sliver; final Widget sliver;
@ -46,7 +46,7 @@ class NeonListView extends StatelessWidget {
key: refreshIndicatorKey, key: refreshIndicatorKey,
onRefresh: onRefresh, onRefresh: onRefresh,
child: CustomScrollView( child: CustomScrollView(
key: scrollKey != null ? PageStorageKey<String>(scrollKey!) : null, key: PageStorageKey<String>(scrollKey),
primary: true, primary: true,
slivers: [ slivers: [
if (topFixedChildren != null) if (topFixedChildren != null)

1
packages/neon/neon/lib/src/widgets/unified_search_results.dart

@ -32,6 +32,7 @@ class NeonUnifiedSearchResults extends StatelessWidget {
final values = results.data?.entries.toList(); final values = results.data?.entries.toList();
return NeonListView( return NeonListView(
scrollKey: 'unified-search',
isLoading: results.isLoading, isLoading: results.isLoading,
error: results.error, error: results.error,
onRefresh: bloc.refresh, onRefresh: bloc.refresh,

Loading…
Cancel
Save