Merge pull request #4840 from pangeachat/group-course-chats-list-by-activity-id
fix: in course chats list, sort activities by activity ID
This commit is contained in:
commit
6249c60fe2
4 changed files with 11 additions and 13 deletions
|
|
@ -4,7 +4,6 @@ import 'package:matrix/matrix.dart';
|
|||
|
||||
import 'package:fluffychat/config/app_config.dart';
|
||||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/pangea/activity_planner/activity_plan_model.dart';
|
||||
import 'package:fluffychat/pangea/common/widgets/url_image_widget.dart';
|
||||
import 'package:fluffychat/pangea/course_chats/extended_space_rooms_chunk.dart';
|
||||
import 'package:fluffychat/pangea/course_chats/open_roles_indicator.dart';
|
||||
|
|
@ -13,20 +12,19 @@ import 'package:fluffychat/widgets/future_loading_dialog.dart';
|
|||
|
||||
class ActivityTemplateChatListItem extends StatelessWidget {
|
||||
final Room space;
|
||||
final ActivityPlanModel activity;
|
||||
final List<ExtendedSpaceRoomsChunk> sessions;
|
||||
final Function(ExtendedSpaceRoomsChunk) joinActivity;
|
||||
|
||||
const ActivityTemplateChatListItem({
|
||||
super.key,
|
||||
required this.space,
|
||||
required this.activity,
|
||||
required this.sessions,
|
||||
required this.joinActivity,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final activity = sessions.first.activity;
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 8,
|
||||
|
|
@ -82,7 +80,7 @@ class ActivityTemplateChatListItem extends StatelessWidget {
|
|||
children: [
|
||||
Expanded(
|
||||
child: OpenRolesIndicator(
|
||||
roles: activity.roles.values.toList(),
|
||||
roles: e.activity.roles.values.toList(),
|
||||
assignedRoles: e.assignedRoles,
|
||||
space: space,
|
||||
),
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ import 'package:matrix/matrix.dart';
|
|||
|
||||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
import 'package:fluffychat/pages/chat_list/chat_list.dart';
|
||||
import 'package:fluffychat/pangea/activity_planner/activity_plan_model.dart';
|
||||
import 'package:fluffychat/pangea/activity_sessions/activity_room_extension.dart';
|
||||
import 'package:fluffychat/pangea/chat_list/widgets/public_room_bottom_sheet.dart';
|
||||
import 'package:fluffychat/pangea/chat_settings/constants/pangea_room_types.dart';
|
||||
|
|
@ -115,10 +114,9 @@ class CourseChatsController extends State<CourseChats>
|
|||
)
|
||||
.toList();
|
||||
|
||||
Map<ActivityPlanModel, List<ExtendedSpaceRoomsChunk>> discoveredActivities() {
|
||||
Map<String, List<ExtendedSpaceRoomsChunk>> discoveredActivities() {
|
||||
if (discoveredChildren == null || roomSummaries == null) return {};
|
||||
final Map<ActivityPlanModel, List<ExtendedSpaceRoomsChunk>> sessionsMap =
|
||||
{};
|
||||
final Map<String, List<ExtendedSpaceRoomsChunk>> sessionsMap = {};
|
||||
|
||||
final validIDs = course?.activityIDs ?? {};
|
||||
for (final chunk in discoveredChildren!) {
|
||||
|
|
@ -151,11 +149,12 @@ class CourseChatsController extends State<CourseChats>
|
|||
continue;
|
||||
}
|
||||
|
||||
sessionsMap[activity] ??= [];
|
||||
sessionsMap[activity]!.add(
|
||||
sessionsMap[activity.activityId] ??= [];
|
||||
sessionsMap[activity.activityId]!.add(
|
||||
ExtendedSpaceRoomsChunk(
|
||||
chunk: chunk,
|
||||
assignedRoles: users.values.toList(),
|
||||
activity: activity,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -223,10 +223,8 @@ class CourseChatsView extends StatelessWidget {
|
|||
final sessions = discoveredSessions[i].value;
|
||||
return ActivityTemplateChatListItem(
|
||||
space: room,
|
||||
activity: activity,
|
||||
sessions: sessions,
|
||||
joinActivity: (e) =>
|
||||
controller.joinActivity(activity.activityId, e),
|
||||
joinActivity: (e) => controller.joinActivity(activity, e),
|
||||
);
|
||||
}
|
||||
i -= discoveredSessions.length;
|
||||
|
|
|
|||
|
|
@ -1,13 +1,16 @@
|
|||
import 'package:matrix/matrix.dart';
|
||||
|
||||
import 'package:fluffychat/pangea/activity_planner/activity_plan_model.dart';
|
||||
import 'package:fluffychat/pangea/activity_sessions/activity_role_model.dart';
|
||||
|
||||
class ExtendedSpaceRoomsChunk {
|
||||
final SpaceRoomsChunk chunk;
|
||||
final List<ActivityRoleModel> assignedRoles;
|
||||
final ActivityPlanModel activity;
|
||||
|
||||
ExtendedSpaceRoomsChunk({
|
||||
required this.chunk,
|
||||
required this.assignedRoles,
|
||||
required this.activity,
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue