Commit 65b370a3 authored by Leon Tappe's avatar Leon Tappe 🔥
Browse files

refactor error ui to make changes easier

parent 8eaaddcb
import 'package:flutter/material.dart';
class ErrorColumn extends StatelessWidget {
final String text;
final Widget? action;
const ErrorColumn(this.text, {Key? key, this.action}) : super(key: key);
@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Text(
'Dein Nachweis ist nicht mehr gültig',
style: Theme.of(context).textTheme.headline4,
),
if (action != null) const Divider(),
action ?? const SizedBox(height: 0.0, width: 0.0)
],
);
}
}
......@@ -12,6 +12,7 @@ import 'package:qr_code_scanner/qr_code_scanner.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'config.dart';
import 'error_colum.dart';
import 'verification_bloc.dart';
enum Action {
......@@ -136,103 +137,52 @@ class _HomePageState extends State<HomePage> {
style: Theme.of(context).textTheme.headline4,
)
else if (state == VerificationState.unverified)
Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Text(
'Dein Nachweis ist nicht mehr gültig',
style: Theme.of(context).textTheme.headline4,
),
const Divider(),
ElevatedButton(
onPressed: _onDeleteTicket,
child: const Text('Nachweis löschen'),
),
],
ErrorColumn(
'Dein Nachweis ist nicht mehr gültig',
action: ElevatedButton(
onPressed: _onDeleteTicket,
child: const Text('Nachweis löschen'),
),
)
else if (state == VerificationState.error)
if (_bloc!.error == VerificationErrorType.encryption)
Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Text(
'Der Schlüssel deines Nachweises ist ungültig',
style: Theme.of(context).textTheme.headline4,
),
const Divider(),
ElevatedButton(
onPressed: _onDeleteTicket,
child: const Text('Nachweis löschen'),
),
],
)
else if (_bloc!.error == VerificationErrorType.encryption)
Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Text(
'Die Signatur deines Nachweises ist ungültig',
style: Theme.of(context).textTheme.headline4,
),
const Divider(),
ElevatedButton(
onPressed: _onDeleteTicket,
child: const Text('Nachweis löschen'),
),
],
ErrorColumn(
'Der Schlüssel deines Nachweises ist ungültig',
action: ElevatedButton(
onPressed: _onDeleteTicket,
child: const Text('Nachweis löschen'),
),
)
else if (_bloc!.error == VerificationErrorType.oldseed)
Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Text(
'Dieser QR-Code ist bereits abgelaufen',
style: Theme.of(context).textTheme.headline4,
),
const Divider(),
ElevatedButton(
onPressed: _bloc!.onRevoke,
child: const Text('Erneut probieren'),
),
],
ErrorColumn(
'Dieser QR-Code ist bereits abgelaufen',
action: ElevatedButton(
onPressed: _bloc!.onRevoke,
child: const Text('Erneut probieren'),
),
)
else if (_bloc!.error == VerificationErrorType.signing)
Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Text(
'Die Signatur deines Nachweises konnte nicht bestätigt werden. Hast du aus Versehen das Debug-Backend an?',
style: Theme.of(context).textTheme.headline4,
),
const Divider(),
if (BlocProvider.of<BackendSwitcher>(context).mode ==
BackendMode.development)
ElevatedButton(
onPressed: () =>
Navigator.of(context).pushNamed('/settings'),
child: const Text('Zu den Einstellungen'),
)
else
ElevatedButton(
onPressed: _onDeleteTicket,
child: const Text('Nachweis löschen'),
),
],
ErrorColumn(
'Die Signatur deines Nachweises konnte nicht bestätigt werden. Hast du aus Versehen das Debug-Backend an?',
action: BlocProvider.of<BackendSwitcher>(context).mode ==
BackendMode.development
? ElevatedButton(
onPressed: () =>
Navigator.of(context).pushNamed('/settings'),
child: const Text('Zu den Einstellungen'),
)
: ElevatedButton(
onPressed: _onDeleteTicket,
child: const Text('Nachweis löschen'),
),
)
else if (_bloc!.error == VerificationErrorType.server)
Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Text(
'Es gibt ein Problem bei der Serververbindung',
style: Theme.of(context).textTheme.headline4,
),
const Divider(),
ElevatedButton(
onPressed: _bloc!.onCheck,
child: const Text('Erneut probieren'),
),
],
ErrorColumn(
'Es gibt ein Problem bei der Serververbindung',
action: ElevatedButton(
onPressed: _bloc!.onCheck,
child: const Text('Erneut probieren'),
),
)
else
Text(
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment