Files
Zakaria 1563409cb1
Build / Build for Android (push) Has been cancelled
Build / Build for iOS (push) Has been cancelled
first commit
2026-05-18 14:15:38 -04:00

46 lines
1.5 KiB
Dart

import 'package:chopper/chopper.dart';
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
/// Snackbar with error icon for displaying errors
ScaffoldFeatureController<SnackBar, SnackBarClosedReason> errorSnackbar(
dynamic error, BuildContext context) {
return ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(AppLocalizations.of(context)!.anErrorHasOccured),
action: SnackBarAction(
label: MaterialLocalizations.of(context).moreButtonTooltip,
onPressed: () => showDialog(
context: context,
builder: (context) => AlertDialog(
title: Text(AppLocalizations.of(context)!.error),
content: Text(_errorText(error, context)),
actions: [
TextButton(
onPressed: () => Navigator.of(context).pop(),
child: Text(MaterialLocalizations.of(context).closeButtonLabel),
)
],
),
),
),
),
);
}
String _errorText(dynamic error, BuildContext context) {
if (error.runtimeType == Response) {
error = error as Response;
if (error.statusCode == 401) {
return AppLocalizations.of(context)!
.responseError401(error.error.toString(), error.statusCode);
} else {
return AppLocalizations.of(context)!
.responseError(error.error.toString(), error.statusCode);
}
} else {
return error.toString();
}
}