performFileAction function

Future<void> performFileAction(
  1. BuildContext context,
  2. Future<void> action()
)

Reports action failures in the page instead of letting a button callback throw.

Implementation

Future<void> performFileAction(
  BuildContext context,
  Future<void> Function() action,
) async {
  final messenger = ScaffoldMessenger.maybeOf(context);
  final message = AnthologyLocalizations.of(context)!.fileActionFailed;
  try {
    await action();
  } catch (error, stack) {
    debugPrint('File action failed: $error\n$stack');
    if (context.mounted) {
      messenger?.showSnackBar(SnackBar(content: Text(message)));
    }
  }
}