Skip to content

Commit

Permalink
Prevent widget from modifying data outside the list.
Browse files Browse the repository at this point in the history
  • Loading branch information
Dimibe committed May 27, 2022
1 parent 71f7c3a commit 609212c
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 3 deletions.
4 changes: 2 additions & 2 deletions lib/grouped_list.dart
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,7 @@ class _GroupedListViewState<T, E> extends State<GroupedListView<T, E>> {
}

List<T> _sortElements() {
var elements = widget.elements;
var elements = [...widget.elements];
if (widget.sort && elements.isNotEmpty) {
elements.sort((e1, e2) {
int? compareResult;
Expand Down Expand Up @@ -411,7 +411,7 @@ class _GroupedListViewState<T, E> extends State<GroupedListView<T, E>> {

Widget _showFixedGroupHeader(int topElementIndex) {
_groupHeaderKey = GlobalKey();
if (widget.useStickyGroupSeparators && widget.elements.isNotEmpty) {
if (widget.useStickyGroupSeparators && _sortedElements.isNotEmpty) {
T topElement;

try {
Expand Down
2 changes: 1 addition & 1 deletion lib/sliver_grouped_list.dart
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ class _SliverGroupedListViewState<T, E>
}

List<T> _sortElements() {
var elements = widget.elements;
var elements = [...widget.elements];
if (widget.sort && elements.isNotEmpty) {
elements.sort((e1, e2) {
int? compareResult;
Expand Down
2 changes: 2 additions & 0 deletions test/grouped_list_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ void main() {
expect(find.text('John'), findsNothing);
expect(find.text('Danny'), findsOneWidget);
});

testWidgets('finds elemets and group separators with reverse list',
(WidgetTester tester) async {
await tester.pumpWidget(_buildApp(_elements, reverse: true));
Expand All @@ -73,6 +74,7 @@ void main() {
testWidgets('empty list', (WidgetTester tester) async {
await tester.pumpWidget(_buildApp([]));
});

testWidgets('empty reversed list', (WidgetTester tester) async {
await tester.pumpWidget(_buildApp([], reverse: true));
});
Expand Down

0 comments on commit 609212c

Please sign in to comment.