feat: Nicer room creation UI
This commit is contained in:
parent
0301c83f40
commit
3faf6df558
5 changed files with 78 additions and 9 deletions
|
|
@ -6,6 +6,7 @@ import 'package:matrix/matrix.dart';
|
|||
import 'package:swipe_to_action/swipe_to_action.dart';
|
||||
|
||||
import 'package:fluffychat/config/themes.dart';
|
||||
import 'package:fluffychat/pages/chat/events/room_creation_state_event.dart';
|
||||
import 'package:fluffychat/utils/date_time_extension.dart';
|
||||
import 'package:fluffychat/utils/string_color.dart';
|
||||
import 'package:fluffychat/widgets/avatar.dart';
|
||||
|
|
@ -68,6 +69,9 @@ class Message extends StatelessWidget {
|
|||
if (event.type.startsWith('m.call.')) {
|
||||
return const SizedBox.shrink();
|
||||
}
|
||||
if (event.type == EventTypes.RoomCreate) {
|
||||
return RoomCreationStateEvent(event: event);
|
||||
}
|
||||
return StateMessage(event);
|
||||
}
|
||||
|
||||
|
|
|
|||
40
lib/pages/chat/events/room_creation_state_event.dart
Normal file
40
lib/pages/chat/events/room_creation_state_event.dart
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:flutter_gen/gen_l10n/l10n.dart';
|
||||
import 'package:matrix/matrix.dart';
|
||||
|
||||
import 'package:fluffychat/utils/date_time_extension.dart';
|
||||
import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart';
|
||||
import 'package:fluffychat/widgets/avatar.dart';
|
||||
|
||||
class RoomCreationStateEvent extends StatelessWidget {
|
||||
final Event event;
|
||||
const RoomCreationStateEvent({required this.event, super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final l10n = L10n.of(context);
|
||||
final matrixLocals = MatrixLocals(l10n);
|
||||
final theme = Theme.of(context);
|
||||
final roomName = event.room.getLocalizedDisplayname(matrixLocals);
|
||||
return Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Avatar(
|
||||
mxContent: event.room.avatar,
|
||||
name: roomName,
|
||||
size: Avatar.defaultSize * 2,
|
||||
),
|
||||
Text(
|
||||
roomName,
|
||||
style: theme.textTheme.headlineSmall,
|
||||
),
|
||||
Text(
|
||||
'${event.originServerTs.localizedTime(context)} | ${l10n.countParticipants((event.room.summary.mJoinedMemberCount ?? 1) + (event.room.summary.mInvitedMemberCount ?? 0))}',
|
||||
style: theme.textTheme.labelSmall,
|
||||
),
|
||||
const SizedBox(height: 48),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue