60 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Dart
		
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Dart
		
	
	
	
| import 'package:flutter/material.dart';
 | |
| 
 | |
| import 'package:extera_next/generated/l10n/l10n.dart';
 | |
| import 'package:matrix/matrix.dart';
 | |
| 
 | |
| import 'package:extera_next/config/app_config.dart';
 | |
| import 'package:extera_next/utils/date_time_extension.dart';
 | |
| import 'package:extera_next/utils/matrix_sdk_extensions/matrix_locals.dart';
 | |
| import 'package:extera_next/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 Padding(
 | |
|       padding: const EdgeInsets.only(bottom: 32.0),
 | |
|       child: Center(
 | |
|         child: ConstrainedBox(
 | |
|           constraints: const BoxConstraints(maxWidth: 256),
 | |
|           child: Material(
 | |
|             color: theme.colorScheme.surfaceContainer,
 | |
|             borderRadius: BorderRadius.circular(AppConfig.borderRadius),
 | |
|             child: Padding(
 | |
|               padding: const EdgeInsets.all(16.0),
 | |
|               child: Column(
 | |
|                 mainAxisSize: MainAxisSize.min,
 | |
|                 children: [
 | |
|                   Avatar(
 | |
|                     mxContent: event.room.avatar,
 | |
|                     name: roomName,
 | |
|                     size: Avatar.defaultSize * 2,
 | |
|                   ),
 | |
|                   Text(
 | |
|                     roomName,
 | |
|                     style: theme.textTheme.bodyLarge,
 | |
|                     textAlign: TextAlign.center,
 | |
|                   ),
 | |
|                   const SizedBox(height: 8),
 | |
|                   Text(
 | |
|                     '${event.originServerTs.localizedTime(context)} | ${l10n.countParticipants((event.room.summary.mJoinedMemberCount ?? 1) + (event.room.summary.mInvitedMemberCount ?? 0))}',
 | |
|                     style: theme.textTheme.labelSmall,
 | |
|                     textAlign: TextAlign.center,
 | |
|                   ),
 | |
|                 ],
 | |
|               ),
 | |
|             ),
 | |
|           ),
 | |
|         ),
 | |
|       ),
 | |
|     );
 | |
|   }
 | |
| }
 |