import 'package:matrix/matrix.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import '../../config/app_config.dart'; class VerificationRequestContent extends StatelessWidget { final Event event; final Timeline timeline; const VerificationRequestContent({this.event, this.timeline}); @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: EdgeInsets.symmetric( horizontal: 8.0, vertical: 4.0, ), child: Center( child: Container( padding: EdgeInsets.all(8), decoration: BoxDecoration( border: Border.all( color: Theme.of(context).dividerColor, ), borderRadius: BorderRadius.circular(AppConfig.borderRadius), color: Theme.of(context).backgroundColor, ), child: Row( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.center, children: [ Icon(Icons.lock_outlined, color: canceled ? Colors.red : (fullyDone ? Colors.green : Colors.grey)), 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))) ], ), ), ), ); } }