chore: remove l1 and CERF course filters from start course and public courses pages, update styling of l2 dropdown (#4278)
This commit is contained in:
parent
c13c2eb1f6
commit
f56cefe55c
4 changed files with 5 additions and 109 deletions
|
|
@ -46,26 +46,23 @@ class CoursePlanFilterState<T> extends State<CoursePlanFilter<T>> {
|
|||
child: DropdownButton2<T>(
|
||||
customButton: Container(
|
||||
decoration: BoxDecoration(
|
||||
border: Border.all(color: theme.colorScheme.onSurface),
|
||||
borderRadius: BorderRadius.circular(12.0),
|
||||
borderRadius: BorderRadius.circular(40.0),
|
||||
color: theme.colorScheme.surfaceContainerHighest,
|
||||
),
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 8.0,
|
||||
vertical: 2.0,
|
||||
horizontal: 16.0,
|
||||
vertical: 12.0,
|
||||
),
|
||||
child: Row(
|
||||
spacing: 4.0,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
widget.value != null
|
||||
? widget.displayname(widget.value as T)
|
||||
: widget.defaultName,
|
||||
style: theme.textTheme.labelMedium,
|
||||
),
|
||||
const Icon(
|
||||
Icons.arrow_drop_down,
|
||||
size: 12.0,
|
||||
),
|
||||
],
|
||||
),
|
||||
|
|
@ -90,9 +87,6 @@ class CoursePlanFilterState<T> extends State<CoursePlanFilter<T>> {
|
|||
borderRadius: BorderRadius.circular(40),
|
||||
),
|
||||
),
|
||||
dropdownStyleData: const DropdownStyleData(
|
||||
width: 250,
|
||||
),
|
||||
dropdownSearchData: widget.enableSearch
|
||||
? DropdownSearchData(
|
||||
searchController: _searchController,
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ import 'package:flutter/material.dart';
|
|||
|
||||
import 'package:fluffychat/pangea/course_plans/course_plan_model.dart';
|
||||
import 'package:fluffychat/pangea/course_plans/course_plans_repo.dart';
|
||||
import 'package:fluffychat/pangea/learning_settings/enums/language_level_type_enum.dart';
|
||||
import 'package:fluffychat/pangea/learning_settings/models/language_model.dart';
|
||||
|
||||
mixin CourseSearchProvider<T extends StatefulWidget> on State<T> {
|
||||
|
|
@ -10,9 +9,6 @@ mixin CourseSearchProvider<T extends StatefulWidget> on State<T> {
|
|||
Object? error;
|
||||
|
||||
List<CoursePlanModel> courses = [];
|
||||
|
||||
LanguageLevelTypeEnum? languageLevelFilter;
|
||||
LanguageModel? instructionLanguageFilter;
|
||||
LanguageModel? targetLanguageFilter;
|
||||
|
||||
@override
|
||||
|
|
@ -26,21 +22,9 @@ mixin CourseSearchProvider<T extends StatefulWidget> on State<T> {
|
|||
CourseFilter get _filter {
|
||||
return CourseFilter(
|
||||
targetLanguage: targetLanguageFilter,
|
||||
languageOfInstructions: instructionLanguageFilter,
|
||||
cefrLevel: languageLevelFilter,
|
||||
);
|
||||
}
|
||||
|
||||
void setLanguageLevelFilter(LanguageLevelTypeEnum? level, {reload = true}) {
|
||||
languageLevelFilter = level;
|
||||
if (reload) _loadCourses();
|
||||
}
|
||||
|
||||
void setInstructionLanguageFilter(LanguageModel? language, {reload = true}) {
|
||||
instructionLanguageFilter = language;
|
||||
if (reload) _loadCourses();
|
||||
}
|
||||
|
||||
void setTargetLanguageFilter(LanguageModel? language, {reload = true}) {
|
||||
targetLanguageFilter = language;
|
||||
if (reload) _loadCourses();
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ 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_search_provider.dart';
|
||||
import 'package:fluffychat/pangea/learning_settings/enums/language_level_type_enum.dart';
|
||||
import 'package:fluffychat/pangea/learning_settings/models/language_model.dart';
|
||||
import 'package:fluffychat/widgets/avatar.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
|
|
@ -38,11 +37,6 @@ class NewTripPageState extends State<NewTripPage> with CourseSearchProvider {
|
|||
if (target != null) {
|
||||
setTargetLanguageFilter(target, reload: false);
|
||||
}
|
||||
|
||||
final base = MatrixState.pangeaController.languageController.systemLanguage;
|
||||
if (base != null) {
|
||||
setInstructionLanguageFilter(base, reload: false);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
@ -82,18 +76,6 @@ class NewTripPageState extends State<NewTripPage> with CourseSearchProvider {
|
|||
runSpacing: 8.0,
|
||||
alignment: WrapAlignment.start,
|
||||
children: [
|
||||
CoursePlanFilter<LanguageModel>(
|
||||
value: instructionLanguageFilter,
|
||||
onChanged: setInstructionLanguageFilter,
|
||||
items: MatrixState
|
||||
.pangeaController.pLanguageStore.baseOptions,
|
||||
displayname: (v) =>
|
||||
v.getDisplayName(context) ?? v.displayName,
|
||||
enableSearch: true,
|
||||
defaultName:
|
||||
L10n.of(context).languageOfInstructionsLabel,
|
||||
shortName: L10n.of(context).allLanguages,
|
||||
),
|
||||
CoursePlanFilter<LanguageModel>(
|
||||
value: targetLanguageFilter,
|
||||
onChanged: setTargetLanguageFilter,
|
||||
|
|
@ -105,14 +87,6 @@ class NewTripPageState extends State<NewTripPage> with CourseSearchProvider {
|
|||
defaultName: L10n.of(context).targetLanguageLabel,
|
||||
shortName: L10n.of(context).allLanguages,
|
||||
),
|
||||
CoursePlanFilter<LanguageLevelTypeEnum>(
|
||||
value: languageLevelFilter,
|
||||
onChanged: setLanguageLevelFilter,
|
||||
items: LanguageLevelTypeEnum.values,
|
||||
displayname: (v) => v.string,
|
||||
defaultName: L10n.of(context).cefrLevelLabel,
|
||||
shortName: L10n.of(context).allCefrLevels,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ 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_plans/course_plan_model.dart';
|
||||
import 'package:fluffychat/pangea/course_plans/course_plans_repo.dart';
|
||||
import 'package:fluffychat/pangea/learning_settings/enums/language_level_type_enum.dart';
|
||||
import 'package:fluffychat/pangea/learning_settings/models/language_model.dart';
|
||||
import 'package:fluffychat/pangea/spaces/utils/public_course_extension.dart';
|
||||
import 'package:fluffychat/widgets/avatar.dart';
|
||||
|
|
@ -34,8 +33,6 @@ class PublicTripPageState extends State<PublicTripPage> {
|
|||
bool loading = true;
|
||||
Object? error;
|
||||
|
||||
LanguageLevelTypeEnum? languageLevelFilter;
|
||||
LanguageModel? instructionLanguageFilter;
|
||||
LanguageModel? targetLanguageFilter;
|
||||
|
||||
List<PublicCoursesChunk> discoveredCourses = [];
|
||||
|
|
@ -51,22 +48,9 @@ class PublicTripPageState extends State<PublicTripPage> {
|
|||
setTargetLanguageFilter(target);
|
||||
}
|
||||
|
||||
final base = MatrixState.pangeaController.languageController.systemLanguage;
|
||||
if (base != null) {
|
||||
setInstructionLanguageFilter(base);
|
||||
}
|
||||
|
||||
_loadCourses();
|
||||
}
|
||||
|
||||
void setLanguageLevelFilter(LanguageLevelTypeEnum? level) {
|
||||
setState(() => languageLevelFilter = level);
|
||||
}
|
||||
|
||||
void setInstructionLanguageFilter(LanguageModel? language) {
|
||||
setState(() => instructionLanguageFilter = language);
|
||||
}
|
||||
|
||||
void setTargetLanguageFilter(LanguageModel? language) {
|
||||
setState(() => targetLanguageFilter = language);
|
||||
}
|
||||
|
|
@ -80,26 +64,6 @@ class PublicTripPageState extends State<PublicTripPage> {
|
|||
)
|
||||
.toList();
|
||||
|
||||
if (languageLevelFilter != null) {
|
||||
filtered = filtered.where(
|
||||
(chunk) {
|
||||
final course = coursePlans[chunk.courseId];
|
||||
if (course == null) return false;
|
||||
return course.cefrLevel == languageLevelFilter;
|
||||
},
|
||||
).toList();
|
||||
}
|
||||
|
||||
if (instructionLanguageFilter != null) {
|
||||
filtered = filtered.where(
|
||||
(chunk) {
|
||||
final course = coursePlans[chunk.courseId];
|
||||
if (course == null) return false;
|
||||
return course.baseLanguageModel == instructionLanguageFilter;
|
||||
},
|
||||
).toList();
|
||||
}
|
||||
|
||||
if (targetLanguageFilter != null) {
|
||||
filtered = filtered.where(
|
||||
(chunk) {
|
||||
|
|
@ -199,18 +163,6 @@ class PublicTripPageState extends State<PublicTripPage> {
|
|||
runSpacing: 8.0,
|
||||
alignment: WrapAlignment.start,
|
||||
children: [
|
||||
CoursePlanFilter<LanguageModel>(
|
||||
value: instructionLanguageFilter,
|
||||
onChanged: setInstructionLanguageFilter,
|
||||
items: MatrixState
|
||||
.pangeaController.pLanguageStore.baseOptions,
|
||||
displayname: (v) =>
|
||||
v.getDisplayName(context) ?? v.displayName,
|
||||
enableSearch: true,
|
||||
defaultName:
|
||||
L10n.of(context).languageOfInstructionsLabel,
|
||||
shortName: L10n.of(context).allLanguages,
|
||||
),
|
||||
CoursePlanFilter<LanguageModel>(
|
||||
value: targetLanguageFilter,
|
||||
onChanged: setTargetLanguageFilter,
|
||||
|
|
@ -222,14 +174,6 @@ class PublicTripPageState extends State<PublicTripPage> {
|
|||
defaultName: L10n.of(context).targetLanguageLabel,
|
||||
shortName: L10n.of(context).allLanguages,
|
||||
),
|
||||
CoursePlanFilter<LanguageLevelTypeEnum>(
|
||||
value: languageLevelFilter,
|
||||
onChanged: setLanguageLevelFilter,
|
||||
items: LanguageLevelTypeEnum.values,
|
||||
displayname: (v) => v.string,
|
||||
defaultName: L10n.of(context).cefrLevelLabel,
|
||||
shortName: L10n.of(context).allCefrLevels,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue