chore: only show unlocalized language options in course search target language dropdowns (#4380)
This commit is contained in:
parent
0b40b1c7ea
commit
ce38f515a7
4 changed files with 41 additions and 19 deletions
31
lib/pangea/course_creation/course_language_filter.dart
Normal file
31
lib/pangea/course_creation/course_language_filter.dart
Normal file
|
|
@ -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<LanguageModel>(
|
||||
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,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -21,6 +21,12 @@ class PLanguageStore {
|
|||
List<LanguageModel> get targetOptions =>
|
||||
_langList.where((element) => element.l2).toList();
|
||||
|
||||
List<LanguageModel> get unlocalizedTargetOptions => _langList
|
||||
.where(
|
||||
(element) => element.l2 && element.langCode == element.langCodeShort,
|
||||
)
|
||||
.toList();
|
||||
|
||||
List<LanguageModel> get baseOptions => _langList.toList();
|
||||
|
||||
static Future<void> initialize({forceRefresh = false}) async {
|
||||
|
|
|
|||
|
|
@ -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<NewTripPage> with CourseSearchProvider {
|
|||
runSpacing: 8.0,
|
||||
alignment: WrapAlignment.start,
|
||||
children: [
|
||||
CoursePlanFilter<LanguageModel>(
|
||||
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,
|
||||
),
|
||||
],
|
||||
),
|
||||
|
|
|
|||
|
|
@ -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<PublicTripPage> {
|
|||
runSpacing: 8.0,
|
||||
alignment: WrapAlignment.start,
|
||||
children: [
|
||||
CoursePlanFilter<LanguageModel>(
|
||||
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,
|
||||
),
|
||||
],
|
||||
),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue