diff --git a/lib/pangea/models/analytics/constructs_model.dart b/lib/pangea/models/analytics/constructs_model.dart index 6e6bad1b6..18c6d3d5a 100644 --- a/lib/pangea/models/analytics/constructs_model.dart +++ b/lib/pangea/models/analytics/constructs_model.dart @@ -1,7 +1,10 @@ +import 'dart:developer'; + import 'package:fluffychat/pangea/matrix_event_wrappers/pangea_message_event.dart'; import 'package:fluffychat/pangea/models/analytics/analytics_model.dart'; import 'package:fluffychat/pangea/models/pangea_token_model.dart'; import 'package:fluffychat/pangea/utils/error_handler.dart'; +import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:matrix/matrix.dart'; @@ -54,7 +57,7 @@ class ConstructAnalyticsModel extends AnalyticsModel { s: s, m: "Error parsing ConstructAnalyticsModel", ); - // debugger(when: kDebugMode); + debugger(when: kDebugMode); } } return ConstructAnalyticsModel( diff --git a/lib/pangea/pages/analytics/base_analytics_view.dart b/lib/pangea/pages/analytics/base_analytics_view.dart index 19d3bcd67..09805ef71 100644 --- a/lib/pangea/pages/analytics/base_analytics_view.dart +++ b/lib/pangea/pages/analytics/base_analytics_view.dart @@ -164,37 +164,34 @@ class BaseAnalyticsView extends StatelessWidget { CrossAxisAlignment.stretch, children: [ ...controller.widget.tabs[0].items.map( - (item) => Expanded( - child: AnalyticsListTile( - refreshStream: - controller.refreshStream, - avatar: item.avatar, - defaultSelected: controller - .widget.defaultSelected, - selected: AnalyticsSelected( + (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, ), - 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, ), + allowNavigateOnSelect: controller + .widget + .tabs[0] + .allowNavigateOnSelect, + pangeaController: + controller.pangeaController, + controller: controller, ), ), if (controller diff --git a/lib/pangea/pages/analytics/class_list/class_list.dart b/lib/pangea/pages/analytics/class_list/class_list.dart index 4fb9ed765..45aa6bb88 100644 --- a/lib/pangea/pages/analytics/class_list/class_list.dart +++ b/lib/pangea/pages/analytics/class_list/class_list.dart @@ -1,6 +1,7 @@ import 'dart:async'; import 'package:fluffychat/pangea/enum/time_span.dart'; +import 'package:fluffychat/pangea/extensions/client_extension/client_extension.dart'; import 'package:fluffychat/pangea/pages/analytics/base_analytics.dart'; import 'package:fluffychat/pangea/pages/analytics/class_list/class_list_view.dart'; import 'package:flutter/material.dart'; @@ -22,6 +23,24 @@ class AnalyticsClassList extends StatefulWidget { class AnalyticsClassListController extends State { PangeaController pangeaController = MatrixState.pangeaController; List models = []; + List spaces = []; + + @override + void initState() { + super.initState(); + Matrix.of(context).client.classesAndExchangesImTeaching.then((spaceList) { + spaceList = spaceList + .where( + (space) => !spaceList.any( + (parentSpace) => parentSpace.spaceChildren + .any((child) => child.roomId == space.id), + ), + ) + .toList(); + spaces = spaceList; + setState(() {}); + }); + } @override Widget build(BuildContext context) { diff --git a/lib/pangea/pages/analytics/class_list/class_list_view.dart b/lib/pangea/pages/analytics/class_list/class_list_view.dart index d8cafcf8e..fe63d7675 100644 --- a/lib/pangea/pages/analytics/class_list/class_list_view.dart +++ b/lib/pangea/pages/analytics/class_list/class_list_view.dart @@ -1,11 +1,9 @@ -import 'package:fluffychat/pangea/extensions/client_extension/client_extension.dart'; import 'package:fluffychat/pangea/pages/analytics/analytics_list_tile.dart'; import 'package:fluffychat/pangea/pages/analytics/time_span_menu_button.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:go_router/go_router.dart'; -import '../../../../widgets/matrix.dart'; import '../../../enum/time_span.dart'; import '../base_analytics.dart'; import 'class_list.dart'; @@ -45,31 +43,28 @@ class AnalyticsClassListView extends StatelessWidget { body: Column( children: [ Flexible( - child: FutureBuilder( - future: Matrix.of(context).client.classesAndExchangesImTeaching, - builder: (context, snapshot) => ListView.builder( - itemCount: snapshot.hasData ? snapshot.data?.length ?? 0 : 0, - itemBuilder: (context, i) => AnalyticsListTile( - defaultSelected: AnalyticsSelected( - snapshot.data![i].id, - AnalyticsEntryType.space, - "", - ), - avatar: snapshot.data![i].avatar, - selected: AnalyticsSelected( - snapshot.data![i].id, - AnalyticsEntryType.space, - snapshot.data![i].name, - ), - onTap: (selected) { - context.go( - '/rooms/analytics/${selected.id}', - ); - }, - allowNavigateOnSelect: true, - isSelected: false, - pangeaController: controller.pangeaController, + child: ListView.builder( + itemCount: controller.spaces.length, + itemBuilder: (context, i) => AnalyticsListTile( + defaultSelected: AnalyticsSelected( + controller.spaces[i].id, + AnalyticsEntryType.space, + "", ), + avatar: controller.spaces[i].avatar, + selected: AnalyticsSelected( + controller.spaces[i].id, + AnalyticsEntryType.space, + controller.spaces[i].name, + ), + onTap: (selected) { + context.go( + '/rooms/analytics/${selected.id}', + ); + }, + allowNavigateOnSelect: true, + isSelected: false, + pangeaController: controller.pangeaController, ), ), ), diff --git a/lib/pangea/pages/analytics/construct_list.dart b/lib/pangea/pages/analytics/construct_list.dart index c1338d550..e169922ca 100644 --- a/lib/pangea/pages/analytics/construct_list.dart +++ b/lib/pangea/pages/analytics/construct_list.dart @@ -117,7 +117,6 @@ class ConstructListViewState extends State { .then((value) => setState(() => _constructs = value)); refreshSubscription = widget.refreshStream.stream.listen((forceUpdate) { - debugPrint("updating constructs"); // postframe callback to let widget rebuild with the new selected parameter // before sending selected to getConstructs function WidgetsBinding.instance.addPostFrameCallback((_) { @@ -132,9 +131,6 @@ class ConstructListViewState extends State { .then( (value) => setState(() { _constructs = value; - debugPrint( - "constructs is now: ${constructs?.map((event) => event.uses.map((use) => use.lemma)).toList()}", - ); }), ); });