chore: show learning objective as subtitle for activity sessions (#3762)

This commit is contained in:
ggurdin 2025-08-15 13:56:14 -04:00 committed by GitHub
parent f8d5d7da7f
commit cc663515ec
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 19 additions and 8 deletions

View file

@ -314,7 +314,7 @@ class ChatListItem extends StatelessWidget {
// #Pangea
: room.lastEvent != null
? ChatListItemSubtitle(
event: room.lastEvent,
room: room,
style: TextStyle(
fontWeight: unread || room.hasNewMessages
? FontWeight.bold

View file

@ -4,18 +4,19 @@ import 'package:matrix/matrix.dart';
import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/l10n/l10n.dart';
import 'package:fluffychat/pangea/activity_sessions/activity_room_extension.dart';
import 'package:fluffychat/pangea/events/event_wrappers/pangea_message_event.dart';
import 'package:fluffychat/pangea/events/models/pangea_token_model.dart';
import 'package:fluffychat/widgets/matrix.dart';
import '../../../utils/matrix_sdk_extensions/matrix_locals.dart';
class ChatListItemSubtitle extends StatelessWidget {
final Event? event;
final Room room;
final TextStyle style;
const ChatListItemSubtitle({
super.key,
required this.event,
required this.room,
required this.style,
});
@ -54,17 +55,27 @@ class ChatListItemSubtitle extends StatelessWidget {
@override
Widget build(BuildContext context) {
if (room.showActivityChatUI) {
return Text(
room.activityPlan!.learningObjective,
style: style,
maxLines: 2,
overflow: TextOverflow.ellipsis,
);
}
final event = room.lastEvent;
if (event == null) return Text(L10n.of(context).emptyChat, style: style);
if (!_showPangeaContent(event!)) {
if (!_showPangeaContent(event)) {
return FutureBuilder(
future: event!.calcLocalizedBody(
future: event.calcLocalizedBody(
MatrixLocals(L10n.of(context)),
hideReply: true,
hideEdit: true,
plaintextBody: true,
removeMarkdown: true,
withSenderNamePrefix: !event!.room.isDirectChat ||
event!.room.directChatMatrixID != event!.room.lastEvent?.senderId,
withSenderNamePrefix: !event.room.isDirectChat ||
event.room.directChatMatrixID != event.room.lastEvent?.senderId,
),
builder: (context, snapshot) {
return Text(
@ -81,7 +92,7 @@ class ChatListItemSubtitle extends StatelessWidget {
}
return FutureBuilder(
future: _getPangeaMessageEvent(event!),
future: _getPangeaMessageEvent(event),
builder: (context, snapshot) {
if (snapshot.hasData) {
final messageEventAndTokens = snapshot.data as MessageEventAndTokens;