52 lines
1.8 KiB
Dart
52 lines
1.8 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_redux/flutter_redux.dart';
|
|
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
|
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
|
|
import 'package:invoiceninja_flutter/ui/app/buttons/elevated_button.dart';
|
|
import 'package:invoiceninja_flutter/ui/app/responsive_padding.dart';
|
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
|
|
|
class ErrorDialog extends StatelessWidget {
|
|
const ErrorDialog(this.error, {this.clearErrorOnDismiss = false});
|
|
final Object error;
|
|
final bool clearErrorOnDismiss;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final localization = AppLocalization.of(context);
|
|
final store = StoreProvider.of<AppState>(context);
|
|
|
|
return ResponsivePadding(
|
|
child: Column(
|
|
children: <Widget>[
|
|
Material(
|
|
child: Padding(
|
|
padding: const EdgeInsets.all(28.0),
|
|
child: Column(
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
children: <Widget>[
|
|
Text(localization.anErrorOccurred,
|
|
style: Theme.of(context).textTheme.title),
|
|
SizedBox(height: 20.0),
|
|
Text(error.toString()),
|
|
SizedBox(height: 40.0),
|
|
ElevatedButton(
|
|
onPressed: () {
|
|
if (clearErrorOnDismiss) {
|
|
store.dispatch(ClearLastError());
|
|
}
|
|
Navigator.of(context).pop();
|
|
},
|
|
label: localization.dismiss,
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
Expanded(child: Container()),
|
|
],
|
|
),
|
|
);
|
|
}
|
|
}
|