You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
244 lines
11 KiB
Dart
244 lines
11 KiB
Dart
// import 'dart:math';
|
|
|
|
// import 'package:fluffychat/pangea/enum/bar_chart_view_enum.dart';
|
|
// import 'package:fluffychat/pangea/enum/construct_type_enum.dart';
|
|
// 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/analytics_view_button.dart';
|
|
// import 'package:fluffychat/pangea/pages/analytics/base_analytics.dart';
|
|
// import 'package:fluffychat/pangea/pages/analytics/construct_list.dart';
|
|
// import 'package:fluffychat/pangea/pages/analytics/messages_bar_chart.dart';
|
|
// import 'package:fluffychat/pangea/pages/analytics/time_span_menu_button.dart';
|
|
// import 'package:fluffychat/widgets/layouts/max_width_body.dart';
|
|
// import 'package:flutter/gestures.dart';
|
|
// import 'package:flutter/material.dart';
|
|
// import 'package:flutter_gen/gen_l10n/l10n.dart';
|
|
// import 'package:go_router/go_router.dart';
|
|
|
|
// class BaseAnalyticsView extends StatelessWidget {
|
|
// const BaseAnalyticsView({
|
|
// super.key,
|
|
// required this.controller,
|
|
// });
|
|
|
|
// final BaseAnalyticsController controller;
|
|
|
|
// Widget chartView(BuildContext context) {
|
|
// switch (controller.currentView) {
|
|
// case BarChartViewSelection.messages:
|
|
// return MessagesBarChart(
|
|
// chartAnalytics: controller.chartData,
|
|
// );
|
|
// case BarChartViewSelection.grammar:
|
|
// return ConstructList(
|
|
// constructType: ConstructTypeEnum.grammar,
|
|
// defaultSelected: controller.widget.defaultSelected,
|
|
// selected: controller.selected,
|
|
// controller: controller,
|
|
// pangeaController: controller.pangeaController,
|
|
// refreshStream: controller.refreshStream,
|
|
// );
|
|
// }
|
|
// }
|
|
|
|
// @override
|
|
// Widget build(BuildContext context) {
|
|
// return Scaffold(
|
|
// appBar: AppBar(
|
|
// centerTitle: true,
|
|
// title: RichText(
|
|
// text: TextSpan(
|
|
// style: TextStyle(
|
|
// color: Theme.of(context).textTheme.bodyLarge!.color,
|
|
// fontSize: 18,
|
|
// fontWeight: FontWeight.w700,
|
|
// ),
|
|
// children: [
|
|
// TextSpan(
|
|
// text: controller.widget.pageTitle,
|
|
// style: const TextStyle(decoration: TextDecoration.underline),
|
|
// recognizer: TapGestureRecognizer()
|
|
// ..onTap = () {
|
|
// final String route =
|
|
// "/rooms/${controller.widget.defaultSelected.type.route}";
|
|
// context.go(route);
|
|
// },
|
|
// ),
|
|
// if (controller.activeSpace != null)
|
|
// const TextSpan(
|
|
// text: " > ",
|
|
// ),
|
|
// if (controller.activeSpace != null)
|
|
// TextSpan(
|
|
// text: controller.activeSpace!.getLocalizedDisplayname(),
|
|
// ),
|
|
// const TextSpan(
|
|
// text: " > ",
|
|
// ),
|
|
// TextSpan(
|
|
// text: controller.currentView.string(context),
|
|
// ),
|
|
// ],
|
|
// ),
|
|
// overflow: TextOverflow.ellipsis,
|
|
// textAlign: TextAlign.center,
|
|
// ),
|
|
// ),
|
|
// body: MaxWidthBody(
|
|
// withScrolling: false,
|
|
// child: Column(
|
|
// children: [
|
|
// Row(
|
|
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
// children: [
|
|
// TimeSpanMenuButton(
|
|
// value: controller.currentTimeSpan,
|
|
// onChange: (TimeSpan value) =>
|
|
// controller.toggleTimeSpan(context, value),
|
|
// ),
|
|
// AnalyticsViewButton(
|
|
// value: controller.currentView,
|
|
// onChange: controller.toggleView,
|
|
// ),
|
|
// AnalyticsLanguageButton(
|
|
// value: controller
|
|
// .pangeaController.analytics.currentAnalyticsLang,
|
|
// onChange: (lang) => controller.toggleSpaceLang(lang),
|
|
// languages: controller.widget.targetLanguages,
|
|
// ),
|
|
// ],
|
|
// ),
|
|
// const SizedBox(
|
|
// height: 10,
|
|
// ),
|
|
// Expanded(
|
|
// flex: 1,
|
|
// child: chartView(context),
|
|
// ),
|
|
// Expanded(
|
|
// flex: 1,
|
|
// child: DefaultTabController(
|
|
// length: 2,
|
|
// child: Column(
|
|
// children: [
|
|
// TabBar(
|
|
// tabs: [
|
|
// ...controller.widget.tabs.map(
|
|
// (tab) => Tab(
|
|
// icon: Icon(
|
|
// tab.icon,
|
|
// color: Theme.of(context)
|
|
// .colorScheme
|
|
// .onSurfaceVariant,
|
|
// ),
|
|
// ),
|
|
// ),
|
|
// ],
|
|
// ),
|
|
// Expanded(
|
|
// child: SingleChildScrollView(
|
|
// child: SizedBox(
|
|
// height: max(
|
|
// controller.widget.tabs[0].items.length + 1,
|
|
// controller.widget.tabs[1].items.length,
|
|
// ) *
|
|
// 72,
|
|
// child: TabBarView(
|
|
// physics: const NeverScrollableScrollPhysics(),
|
|
// children: [
|
|
// Column(
|
|
// crossAxisAlignment: CrossAxisAlignment.stretch,
|
|
// children: [
|
|
// ...controller.widget.tabs[0].items.map(
|
|
// (item) => AnalyticsListTile(
|
|
// refreshStream: controller.refreshStream,
|
|
// avatar: item.avatar,
|
|
// defaultSelected:
|
|
// controller.widget.defaultSelected,
|
|
// selected: AnalyticsSelected(
|
|
// item.id,
|
|
// controller.widget.tabs[0].type,
|
|
// item.displayName,
|
|
// ),
|
|
// isSelected:
|
|
// controller.isSelected(item.id),
|
|
// onTap: (_) => controller.toggleSelection(
|
|
// AnalyticsSelected(
|
|
// item.id,
|
|
// controller.widget.tabs[0].type,
|
|
// item.displayName,
|
|
// ),
|
|
// ),
|
|
// allowNavigateOnSelect: controller
|
|
// .widget.tabs[0].allowNavigateOnSelect,
|
|
// pangeaController:
|
|
// controller.pangeaController,
|
|
// controller: controller,
|
|
// ),
|
|
// ),
|
|
// if (controller.widget.defaultSelected.type ==
|
|
// AnalyticsEntryType.space)
|
|
// AnalyticsListTile(
|
|
// refreshStream: controller.refreshStream,
|
|
// defaultSelected:
|
|
// controller.widget.defaultSelected,
|
|
// avatar: null,
|
|
// selected: AnalyticsSelected(
|
|
// controller.widget.defaultSelected.id,
|
|
// AnalyticsEntryType.privateChats,
|
|
// L10n.of(context)!.allPrivateChats,
|
|
// ),
|
|
// allowNavigateOnSelect: false,
|
|
// isSelected: controller.isSelected(
|
|
// controller.widget.defaultSelected.id,
|
|
// ),
|
|
// onTap: controller.toggleSelection,
|
|
// pangeaController:
|
|
// controller.pangeaController,
|
|
// controller: controller,
|
|
// ),
|
|
// ],
|
|
// ),
|
|
// Column(
|
|
// crossAxisAlignment: CrossAxisAlignment.stretch,
|
|
// children: controller.widget.tabs[1].items
|
|
// .map(
|
|
// (item) => AnalyticsListTile(
|
|
// refreshStream: controller.refreshStream,
|
|
// avatar: item.avatar,
|
|
// defaultSelected:
|
|
// controller.widget.defaultSelected,
|
|
// selected: AnalyticsSelected(
|
|
// item.id,
|
|
// controller.widget.tabs[1].type,
|
|
// item.displayName,
|
|
// ),
|
|
// isSelected:
|
|
// controller.isSelected(item.id),
|
|
// onTap: controller.toggleSelection,
|
|
// allowNavigateOnSelect: controller.widget
|
|
// .tabs[1].allowNavigateOnSelect,
|
|
// pangeaController:
|
|
// controller.pangeaController,
|
|
// controller: controller,
|
|
// ),
|
|
// )
|
|
// .toList(),
|
|
// ),
|
|
// ],
|
|
// ),
|
|
// ),
|
|
// ),
|
|
// ),
|
|
// ],
|
|
// ),
|
|
// ),
|
|
// ),
|
|
// ],
|
|
// ),
|
|
// ),
|
|
// );
|
|
// }
|
|
// }
|