chore: hide course filters in onboarding pages (#4226)

This commit is contained in:
ggurdin 2025-10-02 12:01:56 -04:00 committed by GitHub
parent 828dbab9a8
commit 500e9670fa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 103 additions and 90 deletions

View file

@ -220,7 +220,9 @@ abstract class AppRoutes {
return defaultPageBuilder(
context,
state,
const PublicTripPage(),
const PublicTripPage(
showFilters: false,
),
);
},
),
@ -230,7 +232,10 @@ abstract class AppRoutes {
return defaultPageBuilder(
context,
state,
const NewTripPage(route: 'registration'),
const NewTripPage(
route: 'registration',
showFilters: false,
),
);
},
routes: [

View file

@ -15,11 +15,13 @@ import 'package:fluffychat/widgets/matrix.dart';
class NewTripPage extends StatefulWidget {
final String route;
final String? spaceId;
final bool showFilters;
const NewTripPage({
super.key,
required this.route,
this.spaceId,
this.showFilters = true,
});
@override
@ -70,51 +72,53 @@ class NewTripPageState extends State<NewTripPage> with CourseSearchProvider {
),
child: Column(
children: [
Row(
children: [
Expanded(
child: Wrap(
spacing: 8.0,
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,
items: MatrixState
.pangeaController.pLanguageStore.targetOptions,
displayname: (v) =>
v.getDisplayName(context) ?? v.displayName,
enableSearch: true,
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,
),
],
if (widget.showFilters) ...[
Row(
children: [
Expanded(
child: Wrap(
spacing: 8.0,
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,
items: MatrixState.pangeaController.pLanguageStore
.targetOptions,
displayname: (v) =>
v.getDisplayName(context) ?? v.displayName,
enableSearch: true,
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,
),
],
),
),
),
],
),
const SizedBox(height: 20.0),
],
),
const SizedBox(height: 20.0),
],
loading || error != null || courses.isEmpty
? Center(
child: Padding(

View file

@ -8,8 +8,10 @@ import 'package:fluffychat/pangea/learning_settings/models/language_model.dart';
import 'package:fluffychat/widgets/matrix.dart';
class PublicTripPage extends StatefulWidget {
final bool showFilters;
const PublicTripPage({
super.key,
this.showFilters = true,
});
@override
@ -94,51 +96,53 @@ class PublicTripPageState extends State<PublicTripPage> {
),
child: Column(
children: [
Row(
children: [
Expanded(
child: Wrap(
spacing: 8.0,
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,
items: MatrixState
.pangeaController.pLanguageStore.targetOptions,
displayname: (v) =>
v.getDisplayName(context) ?? v.displayName,
enableSearch: true,
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,
),
],
if (widget.showFilters) ...[
Row(
children: [
Expanded(
child: Wrap(
spacing: 8.0,
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,
items: MatrixState.pangeaController.pLanguageStore
.targetOptions,
displayname: (v) =>
v.getDisplayName(context) ?? v.displayName,
enableSearch: true,
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,
),
],
),
),
),
],
),
const SizedBox(height: 20.0),
],
),
const SizedBox(height: 20.0),
],
Center(
child: Padding(
padding: const EdgeInsets.all(32.0),