import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; import '../../../config/app_config.dart'; class VerificationRequestContent extends StatelessWidget { final Event event; final Timeline timeline; const VerificationRequestContent( {required this.event, required this.timeline, Key? key}) : super(key: key); @override Widget build(BuildContext context) { final events = event.aggregatedEvents(timeline, 'm.reference'); final done = events.where((e) => e.type == EventTypes.KeyVerificationDone); final start = events.where((e) => e.type == EventTypes.KeyVerificationStart); final cancel = events.where((e) => e.type == EventTypes.KeyVerificationCancel); final fullyDone = done.length >= 2; final started = start.isNotEmpty; final canceled = cancel.isNotEmpty; return Padding( padding: const EdgeInsets.symmetric( horizontal: 8.0, vertical: 4.0, ), child: Center( child: Container( padding: const EdgeInsets.all(8), decoration: BoxDecoration( border: Border.all( color: Theme.of(context).dividerColor, ), borderRadius: BorderRadius.circular(AppConfig.borderRadius), color: Theme.of(context).colorScheme.background, ), child: Row( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.center, children: [ Icon(Icons.lock_outlined, color: canceled ? Colors.red : (fullyDone ? Colors.green : Colors.grey)), const SizedBox(width: 8), Text(canceled ? 'Error ${cancel.first.content.tryGet('code')}: ${cancel.first.content.tryGet('reason')}' : (fullyDone ? L10n.of(context)!.verifySuccess : (started ? L10n.of(context)!.loadingPleaseWait : L10n.of(context)!.newVerificationRequest))) ], ), ), ), ); } }