Show error messages

This commit is contained in:
Hillel Coren 2020-06-19 10:36:08 +03:00
parent 10dff7c86c
commit d54b37f1f3
2 changed files with 27 additions and 34 deletions

View File

@ -2,12 +2,13 @@ import 'package:flutter/material.dart';
import 'package:flutter_redux/flutter_redux.dart'; import 'package:flutter_redux/flutter_redux.dart';
import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/ui/app/buttons/elevated_button.dart'; import 'package:invoiceninja_flutter/redux/auth/auth_actions.dart';
import 'package:invoiceninja_flutter/ui/app/responsive_padding.dart'; import 'package:invoiceninja_flutter/utils/dialogs.dart';
import 'package:invoiceninja_flutter/utils/localization.dart'; import 'package:invoiceninja_flutter/utils/localization.dart';
class ErrorDialog extends StatelessWidget { class ErrorDialog extends StatelessWidget {
const ErrorDialog(this.error, {this.clearErrorOnDismiss = false}); const ErrorDialog(this.error, {this.clearErrorOnDismiss = false});
final Object error; final Object error;
final bool clearErrorOnDismiss; final bool clearErrorOnDismiss;
@ -16,36 +17,28 @@ class ErrorDialog extends StatelessWidget {
final localization = AppLocalization.of(context); final localization = AppLocalization.of(context);
final store = StoreProvider.of<AppState>(context); final store = StoreProvider.of<AppState>(context);
return ResponsivePadding( return AlertDialog(
child: Column( title: Text(localization.anErrorOccurred),
children: <Widget>[ content: Text(error.toString()),
Material( actions: [
child: Padding( FlatButton(
padding: const EdgeInsets.all(28.0), child: Text(localization.logout.toUpperCase()),
child: Column( onPressed: () {
crossAxisAlignment: CrossAxisAlignment.center, confirmCallback(
children: <Widget>[ context: context,
Text(localization.anErrorOccurred, callback: () {
style: Theme.of(context).textTheme.headline6), store.dispatch(UserLogout(context));
SizedBox(height: 20.0), });
Text(error.toString()), }),
SizedBox(height: 40.0), FlatButton(
ElevatedButton( child: Text(localization.dismiss.toUpperCase()),
onPressed: () { onPressed: () {
if (clearErrorOnDismiss) { if (clearErrorOnDismiss) {
store.dispatch(ClearLastError()); store.dispatch(ClearLastError());
} }
Navigator.of(context).pop(); Navigator.of(context).pop();
}, }),
label: localization.dismiss,
),
], ],
),
),
),
Expanded(child: Container()),
],
),
); );
} }
} }

View File

@ -579,8 +579,8 @@ class SidebarFooter extends StatelessWidget {
onPressed: () => viewPdf(InvoiceEntity(), context), onPressed: () => viewPdf(InvoiceEntity(), context),
), ),
*/ */
if (state.lastError.isNotEmpty && //if (state.lastError.isNotEmpty && (state.isSelfHosted || !kReleaseMode))
(state.isSelfHosted || !kReleaseMode)) if (state.lastError.isNotEmpty)
IconButton( IconButton(
icon: Icon( icon: Icon(
Icons.warning, Icons.warning,