🐛 Fix and optimize alert

This commit is contained in:
2025-09-13 14:36:43 +08:00
parent 3a5e45808a
commit 724391584e
2 changed files with 18 additions and 4 deletions

View File

@@ -9,6 +9,11 @@ String _parseRemoteError(DioException err) {
String? message; String? message;
if (err.response?.data is String) { if (err.response?.data is String) {
message = err.response?.data; message = err.response?.data;
} else if (err.response?.data?['message'] != null) {
message = <String?>[
err.response?.data?['message']?.toString(),
err.response?.data?['detail']?.toString(),
].where((e) => e != null).cast<String>().map((e) => e.trim()).join('\n');
} else if (err.response?.data?['errors'] != null) { } else if (err.response?.data?['errors'] != null) {
final errors = err.response?.data['errors'] as Map<String, dynamic>; final errors = err.response?.data['errors'] as Map<String, dynamic>;
message = errors.values message = errors.values

View File

@@ -8,17 +8,26 @@ import 'package:easy_localization/easy_localization.dart';
String _parseRemoteError(DioException err) { String _parseRemoteError(DioException err) {
log('${err.requestOptions.method} ${err.requestOptions.uri} ${err.message}'); log('${err.requestOptions.method} ${err.requestOptions.uri} ${err.message}');
if (err.response?.data is String) return err.response?.data; String? message;
if (err.response?.data?['errors'] != null) { if (err.response?.data is String) {
message = err.response?.data;
} else if (err.response?.data?['message'] != null) {
message = <String?>[
err.response?.data?['message']?.toString(),
err.response?.data?['detail']?.toString(),
].where((e) => e != null).cast<String>().map((e) => e.trim()).join('\n');
} else if (err.response?.data?['errors'] != null) {
final errors = err.response?.data['errors'] as Map<String, dynamic>; final errors = err.response?.data['errors'] as Map<String, dynamic>;
return errors.values message = errors.values
.map( .map(
(ele) => (ele) =>
(ele as List<dynamic>).map((ele) => ele.toString()).join('\n'), (ele as List<dynamic>).map((ele) => ele.toString()).join('\n'),
) )
.join('\n'); .join('\n');
} }
return err.message ?? err.toString(); if (message == null || message.isEmpty) message = err.response?.statusMessage;
message ??= err.message;
return message ?? err.toString();
} }
void showErrorAlert(dynamic err) async { void showErrorAlert(dynamic err) async {