chore: Search for course filter not saved when open new course page

This commit is contained in:
ggurdin 2026-01-27 14:34:20 -05:00
parent 92ae0fd79f
commit 56350a91ea
No known key found for this signature in database
GPG key ID: A01CB41737CBB478
3 changed files with 27 additions and 6 deletions

View file

@ -365,11 +365,13 @@ abstract class AppRoutes {
GoRoute(
path: 'own',
pageBuilder: (context, state) {
debugPrint("HELLLLO");
return defaultPageBuilder(
context,
state,
const NewCoursePage(route: 'rooms'),
NewCoursePage(
route: 'rooms',
initialLanguageCode: state.uri.queryParameters['lang'],
),
);
},
routes: [

View file

@ -204,6 +204,15 @@ class FindCoursePageState extends State<FindCoursePage> {
}
}
void startNewCourse() {
String route = "/rooms/course/own";
if (targetLanguageFilter != null) {
route +=
"?lang=${Uri.encodeComponent(targetLanguageFilter!.langCodeShort)}";
}
context.go(route);
}
@override
Widget build(BuildContext context) {
return FindCoursePageView(controller: this);
@ -283,6 +292,7 @@ class FindCoursePageView extends StatelessWidget {
),
if (constrained.maxWidth >= 500) ...[
TextButton(
onPressed: controller.startNewCourse,
child: Row(
spacing: 8.0,
children: [
@ -290,7 +300,6 @@ class FindCoursePageView extends StatelessWidget {
Text(L10n.of(context).newCourse),
],
),
onPressed: () => context.go("/rooms/course/own"),
),
TextButton(
child: Row(
@ -307,7 +316,7 @@ class FindCoursePageView extends StatelessWidget {
icon: const Icon(Icons.more_vert),
itemBuilder: (context) => [
PopupMenuItem(
onTap: () => context.go("/rooms/course/own"),
onTap: controller.startNewCourse,
child: Row(
spacing: 8.0,
children: [

View file

@ -17,6 +17,7 @@ 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_response.dart';
import 'package:fluffychat/pangea/languages/language_model.dart';
import 'package:fluffychat/pangea/languages/p_language_store.dart';
import 'package:fluffychat/pangea/learning_settings/language_level_type_enum.dart';
import 'package:fluffychat/widgets/adaptive_dialogs/adaptive_dialog_action.dart';
import 'package:fluffychat/widgets/avatar.dart';
@ -27,12 +28,14 @@ class NewCoursePage extends StatefulWidget {
final String route;
final String? spaceId;
final bool showFilters;
final String? initialLanguageCode;
const NewCoursePage({
super.key,
required this.route,
this.spaceId,
this.showFilters = true,
this.initialLanguageCode,
});
@override
@ -50,8 +53,15 @@ class NewCoursePageState extends State<NewCoursePage> {
void initState() {
super.initState();
_targetLanguageFilter.value =
MatrixState.pangeaController.userController.userL2;
if (widget.initialLanguageCode != null) {
_targetLanguageFilter.value =
PLanguageStore.byLangCode(widget.initialLanguageCode!);
}
if (_targetLanguageFilter.value == null) {
_targetLanguageFilter.value =
MatrixState.pangeaController.userController.userL2;
}
_loadCourses();
}