Label analytics filters

This commit is contained in:
Kelrap 2024-06-26 17:52:35 -04:00
parent 340d0ac1e2
commit 04a94b074f
5 changed files with 70 additions and 28 deletions

View file

@ -4058,5 +4058,12 @@
"suggestToSpaceDesc": "Suggested spaces will appear in the chat lists for their parent spaces",
"practice": "Practice",
"noLanguagesSet": "No languages set",
"noActivitiesFound": "No practice activities found for this message"
"noActivitiesFound": "No practice activities found for this message",
"languageButtonLabel": "Language: {currentLanguage}",
"@languageButtonLabel": {
"type": "text",
"placeholders": {
"currentLanguage": {}
}
}
}

View file

@ -16,7 +16,6 @@ class AnalyticsLanguageButton extends StatelessWidget {
@override
Widget build(BuildContext context) {
return PopupMenuButton<LanguageModel>(
icon: const Icon(Icons.language_outlined),
tooltip: L10n.of(context)!.changeAnalyticsLanguage,
initialValue: value,
onSelected: (LanguageModel? lang) {
@ -33,6 +32,21 @@ class AnalyticsLanguageButton extends StatelessWidget {
child: Text(lang.getDisplayName(context) ?? lang.langCode),
);
}).toList(),
child: TextButton.icon(
label: Text(
L10n.of(context)!.languageButtonLabel(
value.getDisplayName(context) ?? value.langCode,
),
style: TextStyle(
color: Theme.of(context).colorScheme.onSurface,
),
),
icon: Icon(
Icons.language_outlined,
color: Theme.of(context).colorScheme.onSurface,
),
onPressed: null,
),
);
}
}

View file

@ -108,7 +108,10 @@ class BaseAnalyticsView extends StatelessWidget {
? Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.end,
mainAxisAlignment: controller.widget.defaultSelected.type ==
AnalyticsEntryType.space
? MainAxisAlignment.spaceEvenly
: MainAxisAlignment.start,
children: [
if (controller.widget.defaultSelected.type ==
AnalyticsEntryType.student)
@ -159,13 +162,15 @@ class BaseAnalyticsView extends StatelessWidget {
),
Expanded(
child: SingleChildScrollView(
child: SizedBox(
height: max(
controller.widget.tabs[0].items.length +
1,
controller.widget.tabs[1].items.length,
) *
72,
child: ConstrainedBox(
constraints: BoxConstraints(
maxHeight: max(
controller.widget.tabs[0].items.length +
1,
controller.widget.tabs[1].items.length,
) *
73,
),
child: TabBarView(
physics: const NeverScrollableScrollPhysics(),
children: [

View file

@ -1,3 +1,4 @@
import 'package:fluffychat/pangea/enum/time_span.dart';
import 'package:fluffychat/pangea/pages/analytics/analytics_language_button.dart';
import 'package:fluffychat/pangea/pages/analytics/analytics_list_tile.dart';
import 'package:fluffychat/pangea/pages/analytics/time_span_menu_button.dart';
@ -5,7 +6,6 @@ import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:go_router/go_router.dart';
import '../../../enum/time_span.dart';
import '../base_analytics.dart';
import 'space_list.dart';
@ -32,25 +32,29 @@ class AnalyticsSpaceListView extends StatelessWidget {
icon: const Icon(Icons.close_outlined),
onPressed: () => context.pop(),
),
actions: [
TimeSpanMenuButton(
value:
controller.pangeaController.analytics.currentAnalyticsTimeSpan,
onChange: (TimeSpan value) => controller.toggleTimeSpan(
context,
value,
),
),
AnalyticsLanguageButton(
value:
controller.pangeaController.analytics.currentAnalyticsSpaceLang,
onChange: (lang) => controller.toggleSpaceLang(lang),
languages: controller.pangeaController.pLanguageStore.targetOptions,
),
],
),
body: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
TimeSpanMenuButton(
value: controller
.pangeaController.analytics.currentAnalyticsTimeSpan,
onChange: (TimeSpan value) => controller.toggleTimeSpan(
context,
value,
),
),
AnalyticsLanguageButton(
value: controller
.pangeaController.analytics.currentAnalyticsSpaceLang,
onChange: (lang) => controller.toggleSpaceLang(lang),
languages:
controller.pangeaController.pLanguageStore.targetOptions,
),
],
),
Flexible(
child: ListView.builder(
itemCount: controller.spaces.length,

View file

@ -15,7 +15,6 @@ class TimeSpanMenuButton extends StatelessWidget {
@override
Widget build(BuildContext context) {
return PopupMenuButton<TimeSpan>(
icon: const Icon(Icons.calendar_month_outlined),
tooltip: L10n.of(context)!.changeDateRange,
initialValue: value,
onSelected: (TimeSpan? timeSpan) {
@ -32,6 +31,19 @@ class TimeSpanMenuButton extends StatelessWidget {
child: Text(timeSpan.string(context)),
);
}).toList(),
child: TextButton.icon(
label: Text(
value.string(context),
style: TextStyle(
color: Theme.of(context).colorScheme.onSurface,
),
),
icon: Icon(
Icons.calendar_month_outlined,
color: Theme.of(context).colorScheme.onSurface,
),
onPressed: null,
),
);
}
}