🐛 Fix and optimize alert
This commit is contained in:
		| @@ -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 | ||||||
|   | |||||||
| @@ -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 { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user