diff --git a/lib/pangea/course_creation/course_language_filter.dart b/lib/pangea/course_creation/course_language_filter.dart index 432780f0a..cbaaeae28 100644 --- a/lib/pangea/course_creation/course_language_filter.dart +++ b/lib/pangea/course_creation/course_language_filter.dart @@ -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; + }, ); } } diff --git a/lib/pangea/course_creation/course_plan_filter_widget.dart b/lib/pangea/course_creation/course_plan_filter_widget.dart index 01b9ef57f..1b1d886dc 100644 --- a/lib/pangea/course_creation/course_plan_filter_widget.dart +++ b/lib/pangea/course_creation/course_plan_filter_widget.dart @@ -13,6 +13,7 @@ class CoursePlanFilter extends StatefulWidget { final String Function(T) displayname; final bool enableSearch; + final bool Function(DropdownMenuItem, String)? searchMatchFn; const CoursePlanFilter({ super.key, @@ -22,6 +23,7 @@ class CoursePlanFilter extends StatefulWidget { required this.defaultName, required this.displayname, this.enableSearch = false, + this.searchMatchFn, }); @override @@ -100,15 +102,7 @@ class CoursePlanFilterState extends State> { ), ), ), - 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) {