sort errors by number, prevent horizontal scrolling of analytics tab, join chat on analytics tile click

pull/1183/head
ggurdin 1 year ago
parent 417d0fde02
commit 4e8f9abfb0

@ -104,7 +104,6 @@ class AnalyticsListTileState extends State<AnalyticsListTile> {
)
: null,
selected: widget.selected,
enabled: widget.enabled,
onTap: () {
(room?.isSpace ?? false) && widget.allowNavigateOnSelect
? context.go(

@ -5,6 +5,7 @@ import 'package:fluffychat/pangea/extensions/client_extension.dart';
import 'package:fluffychat/pangea/pages/analytics/base_analytics_view.dart';
import 'package:fluffychat/pangea/pages/analytics/student_analytics/student_analytics.dart';
import 'package:flutter/material.dart';
import 'package:future_loading_dialog/future_loading_dialog.dart';
import 'package:matrix/matrix.dart';
import '../../../widgets/matrix.dart';
@ -101,18 +102,40 @@ class BaseAnalyticsController extends State<BaseAnalyticsPage> {
}
}
void toggleSelection(AnalyticsSelected selectedParam) {
Future<void> toggleSelection(AnalyticsSelected selectedParam) async {
final bool joinSelectedRoom =
selectedParam.type == AnalyticsEntryType.room &&
!enableSelection(
selectedParam,
);
if (joinSelectedRoom) {
await showFutureLoadingDialog(
context: context,
future: () async {
final waitForRoom = Matrix.of(context).client.waitForRoomInSync(
selectedParam.id,
join: true,
);
await Matrix.of(context).client.joinRoom(selectedParam.id);
await waitForRoom;
},
);
}
setState(() {
debugPrint("selectedParam.id is ${selectedParam.id}");
currentLemma = null;
selected = isSelected(selectedParam.id) ? null : selectedParam;
});
pangeaController.analytics.setConstructs(
constructType: ConstructType.grammar,
defaultSelected: widget.defaultSelected,
selected: selected,
removeIT: true,
);
Future.delayed(Duration.zero, () => setState(() {}));
}

@ -145,6 +145,7 @@ class BaseAnalyticsView extends StatelessWidget {
) *
72,
child: TabBarView(
physics: const NeverScrollableScrollPhysics(),
children: [
Column(
crossAxisAlignment:

@ -243,9 +243,13 @@ class ConstructListViewState extends State<ConstructListView> {
List<AggregateConstructUses>? get constructs =>
widget.pangeaController.analytics.constructs != null
? widget.pangeaController.myAnalytics.aggregateConstructData(
widget.pangeaController.analytics.constructs!,
)
? widget.pangeaController.myAnalytics
.aggregateConstructData(
widget.pangeaController.analytics.constructs!,
)
.sorted(
(a, b) => b.uses.length.compareTo(a.uses.length),
)
: null;
AggregateConstructUses? get currentConstruct => constructs?.firstWhereOrNull(

Loading…
Cancel
Save