fix: don't sort vocab list by search term if search term is empty (#5882)
This commit is contained in:
parent
fa49a7f7f7
commit
c73776c79e
1 changed files with 8 additions and 8 deletions
|
|
@ -3,7 +3,6 @@ import 'dart:convert';
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:diacritic/diacritic.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
|
||||
|
|
@ -29,8 +28,14 @@ class VocabAnalyticsListView extends StatelessWidget {
|
|||
|
||||
const VocabAnalyticsListView({super.key, required this.controller});
|
||||
|
||||
List<ConstructUses>? get _filteredVocab =>
|
||||
controller.vocab?.where(_vocabFilter).sorted(_sortBySearch).toList();
|
||||
List<ConstructUses>? get _filteredVocab {
|
||||
final filteredVocab = controller.vocab?.where(_vocabFilter).toList();
|
||||
if (controller.isSearching &&
|
||||
controller.searchController.text.trim().isNotEmpty) {
|
||||
filteredVocab?.sort(_sortBySearch);
|
||||
}
|
||||
return filteredVocab?.toList();
|
||||
}
|
||||
|
||||
bool _vocabFilter(ConstructUses use) =>
|
||||
_levelFilter(use) && _searchFilter(use);
|
||||
|
|
@ -57,11 +62,6 @@ class VocabAnalyticsListView extends StatelessWidget {
|
|||
}
|
||||
|
||||
int _sortBySearch(ConstructUses a, ConstructUses b) {
|
||||
if (!controller.isSearching ||
|
||||
controller.searchController.text.trim().isEmpty) {
|
||||
return 0; // No sorting if not searching
|
||||
}
|
||||
|
||||
final normalizedSearch = removeDiacritics(
|
||||
controller.searchController.text,
|
||||
).toLowerCase();
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue