invoice/lib/utils/completers.dart

40 lines
1.1 KiB
Dart

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:invoiceninja_flutter/ui/app/dialogs/error_dialog.dart';
import 'package:invoiceninja_flutter/ui/app/snackbar_row.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
Completer<Null> snackBarCompleter(BuildContext context, String message) {
final Completer<Null> completer = Completer<Null>();
completer.future.then((_) {
Scaffold.of(context).showSnackBar(SnackBar(
content: SnackBarRow(
message: message,
)));
}).catchError((Object error) {
showDialog<ErrorDialog>(
context: context,
builder: (BuildContext context) {
return ErrorDialog(error);
});
});
return completer;
}
Completer<Null> popCompleter(BuildContext context, String message) {
final Completer<Null> completer = Completer<Null>();
completer.future.then((_) {
Navigator.of(context).pop(message);
}).catchError((Object error) {
showDialog<ErrorDialog>(
context: context,
builder: (BuildContext context) {
return ErrorDialog(error);
});
});
return completer;
}