diff --git a/lib/pangea/course_creation/course_language_filter.dart b/lib/pangea/course_creation/course_language_filter.dart new file mode 100644 index 000000000..059aa3cfc --- /dev/null +++ b/lib/pangea/course_creation/course_language_filter.dart @@ -0,0 +1,31 @@ +import 'package:flutter/material.dart'; + +import 'package:fluffychat/l10n/l10n.dart'; +import 'package:fluffychat/pangea/course_creation/course_plan_filter_widget.dart'; +import 'package:fluffychat/pangea/learning_settings/models/language_model.dart'; +import 'package:fluffychat/widgets/matrix.dart'; + +class CourseLanguageFilter extends StatelessWidget { + final LanguageModel? value; + final void Function(LanguageModel?) onChanged; + + const CourseLanguageFilter({ + super.key, + required this.value, + required this.onChanged, + }); + + @override + Widget build(BuildContext context) { + return CoursePlanFilter( + value: value, + onChanged: onChanged, + items: + MatrixState.pangeaController.pLanguageStore.unlocalizedTargetOptions, + displayname: (v) => v.getDisplayName(context) ?? v.displayName, + enableSearch: true, + defaultName: L10n.of(context).targetLanguageLabel, + shortName: L10n.of(context).allLanguages, + ); + } +} diff --git a/lib/pangea/learning_settings/utils/p_language_store.dart b/lib/pangea/learning_settings/utils/p_language_store.dart index 60310f18b..e0ea88727 100644 --- a/lib/pangea/learning_settings/utils/p_language_store.dart +++ b/lib/pangea/learning_settings/utils/p_language_store.dart @@ -21,6 +21,12 @@ class PLanguageStore { List get targetOptions => _langList.where((element) => element.l2).toList(); + List get unlocalizedTargetOptions => _langList + .where( + (element) => element.l2 && element.langCode == element.langCodeShort, + ) + .toList(); + List get baseOptions => _langList.toList(); static Future initialize({forceRefresh = false}) async { diff --git a/lib/pangea/login/pages/new_trip_page.dart b/lib/pangea/login/pages/new_trip_page.dart index 98dee3593..8ae38ef98 100644 --- a/lib/pangea/login/pages/new_trip_page.dart +++ b/lib/pangea/login/pages/new_trip_page.dart @@ -6,9 +6,8 @@ import 'package:fluffychat/l10n/l10n.dart'; import 'package:fluffychat/pangea/bot/widgets/bot_face_svg.dart'; import 'package:fluffychat/pangea/common/widgets/url_image_widget.dart'; import 'package:fluffychat/pangea/course_creation/course_info_chip_widget.dart'; -import 'package:fluffychat/pangea/course_creation/course_plan_filter_widget.dart'; +import 'package:fluffychat/pangea/course_creation/course_language_filter.dart'; import 'package:fluffychat/pangea/course_creation/course_search_provider.dart'; -import 'package:fluffychat/pangea/learning_settings/models/language_model.dart'; import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/matrix.dart'; @@ -77,16 +76,9 @@ class NewTripPageState extends State with CourseSearchProvider { runSpacing: 8.0, alignment: WrapAlignment.start, children: [ - CoursePlanFilter( + CourseLanguageFilter( value: targetLanguageFilter, onChanged: setTargetLanguageFilter, - items: MatrixState.pangeaController.pLanguageStore - .targetOptions, - displayname: (v) => - v.getDisplayName(context) ?? v.displayName, - enableSearch: true, - defaultName: L10n.of(context).targetLanguageLabel, - shortName: L10n.of(context).allLanguages, ), ], ), diff --git a/lib/pangea/login/pages/public_trip_page.dart b/lib/pangea/login/pages/public_trip_page.dart index ca3ef7e96..63ad81114 100644 --- a/lib/pangea/login/pages/public_trip_page.dart +++ b/lib/pangea/login/pages/public_trip_page.dart @@ -8,7 +8,7 @@ import 'package:fluffychat/pangea/bot/widgets/bot_face_svg.dart'; import 'package:fluffychat/pangea/common/utils/error_handler.dart'; import 'package:fluffychat/pangea/common/widgets/url_image_widget.dart'; import 'package:fluffychat/pangea/course_creation/course_info_chip_widget.dart'; -import 'package:fluffychat/pangea/course_creation/course_plan_filter_widget.dart'; +import 'package:fluffychat/pangea/course_creation/course_language_filter.dart'; import 'package:fluffychat/pangea/course_plans/courses/course_plan_model.dart'; import 'package:fluffychat/pangea/course_plans/courses/course_plans_repo.dart'; import 'package:fluffychat/pangea/course_plans/courses/get_localized_courses_request.dart'; @@ -176,16 +176,9 @@ class PublicTripPageState extends State { runSpacing: 8.0, alignment: WrapAlignment.start, children: [ - CoursePlanFilter( + CourseLanguageFilter( value: targetLanguageFilter, onChanged: setTargetLanguageFilter, - items: MatrixState.pangeaController.pLanguageStore - .targetOptions, - displayname: (v) => - v.getDisplayName(context) ?? v.displayName, - enableSearch: true, - defaultName: L10n.of(context).targetLanguageLabel, - shortName: L10n.of(context).allLanguages, ), ], ),