Files
Redesnigned-Finamp/lib/components/error_snackbar.dart
T
Zakaria d0ca84d8d2
Build / Build for Android (push) Has been cancelled
Build / Build for iOS (push) Has been cancelled
redesign app phase 1
2026-05-18 14:34:41 -04:00

46 lines
1.5 KiB
Dart

import 'package:chopper/chopper.dart';
import 'package:flutter/material.dart';
import 'package:finamp/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();
}
}