Merge pull request #4657 from pangeachat/4634-let-users-search-by-language-code
feat: allow language course search by langCode
This commit is contained in:
commit
b591034b3b
2 changed files with 10 additions and 9 deletions
|
|
@ -25,6 +25,13 @@ class CourseLanguageFilter extends StatelessWidget {
|
|||
displayname: (v) => v.getDisplayName(context) ?? v.displayName,
|
||||
enableSearch: true,
|
||||
defaultName: L10n.of(context).allLanguages,
|
||||
searchMatchFn: (item, searchValue) {
|
||||
final search = searchValue.toLowerCase();
|
||||
final displayName = item.value?.displayName.toLowerCase();
|
||||
final langCode = item.value?.langCode.toLowerCase();
|
||||
return displayName?.startsWith(search) == true ||
|
||||
langCode?.startsWith(search) == true;
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ class CoursePlanFilter<T> extends StatefulWidget {
|
|||
final String Function(T) displayname;
|
||||
|
||||
final bool enableSearch;
|
||||
final bool Function(DropdownMenuItem<T>, String)? searchMatchFn;
|
||||
|
||||
const CoursePlanFilter({
|
||||
super.key,
|
||||
|
|
@ -22,6 +23,7 @@ class CoursePlanFilter<T> extends StatefulWidget {
|
|||
required this.defaultName,
|
||||
required this.displayname,
|
||||
this.enableSearch = false,
|
||||
this.searchMatchFn,
|
||||
});
|
||||
|
||||
@override
|
||||
|
|
@ -100,15 +102,7 @@ class CoursePlanFilterState<T> extends State<CoursePlanFilter<T>> {
|
|||
),
|
||||
),
|
||||
),
|
||||
searchMatchFn: (item, searchValue) {
|
||||
final displayName = (item.value != null
|
||||
? widget.displayname(item.value as T)
|
||||
: widget.defaultName)
|
||||
.toLowerCase();
|
||||
|
||||
final search = searchValue.toLowerCase();
|
||||
return displayName.startsWith(search);
|
||||
},
|
||||
searchMatchFn: widget.searchMatchFn,
|
||||
)
|
||||
: null,
|
||||
onMenuStateChange: (isOpen) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue