mirror of
https://gitlab.com/famedly/fluffychat.git
synced 2024-12-21 04:42:37 +01:00
62 lines
2.1 KiB
Dart
62 lines
2.1 KiB
Dart
|
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: <Widget>[
|
||
|
Icon(Icons.lock_outlined,
|
||
|
color: canceled
|
||
|
? Colors.red
|
||
|
: (fullyDone ? Colors.green : Colors.grey)),
|
||
|
SizedBox(width: 8),
|
||
|
Text(canceled
|
||
|
? 'Error ${cancel.first.content.tryGet<String>('code')}: ${cancel.first.content.tryGet<String>('reason')}'
|
||
|
: (fullyDone
|
||
|
? L10n.of(context).verifySuccess
|
||
|
: (started
|
||
|
? L10n.of(context).loadingPleaseWait
|
||
|
: L10n.of(context).newVerificationRequest)))
|
||
|
],
|
||
|
),
|
||
|
),
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
}
|