|
|
@ -135,14 +135,26 @@ class _CategoriesPageState extends State<CategoriesPage> { |
|
|
); |
|
|
); |
|
|
|
|
|
|
|
|
if (response.statusCode == 200 || response.statusCode == 204) { |
|
|
if (response.statusCode == 200 || response.statusCode == 204) { |
|
|
await _loadCategories(); // Recharger la liste |
|
|
await _loadCategories(); // Recharger la liste |
|
|
if (mounted) { |
|
|
if (mounted) { |
|
|
ScaffoldMessenger.of(context).showSnackBar( |
|
|
ScaffoldMessenger.of(context).showSnackBar( |
|
|
const SnackBar(content: Text('Catégorie supprimée avec succès')), |
|
|
const SnackBar(content: Text('Catégorie supprimée avec succès')), |
|
|
); |
|
|
); |
|
|
} |
|
|
} |
|
|
} else { |
|
|
} else { |
|
|
throw Exception('Erreur lors de la suppression (${response.statusCode})'); |
|
|
// On essaie de décoder le corps pour extraire un message clair |
|
|
|
|
|
String message; |
|
|
|
|
|
try { |
|
|
|
|
|
final Map<String, dynamic> body = jsonDecode(response.body); |
|
|
|
|
|
message = body['message'] ?? body['error'] ?? response.body; |
|
|
|
|
|
} catch (_) { |
|
|
|
|
|
// Le corps n'est pas en JSON ou est vide |
|
|
|
|
|
message = response.body.isNotEmpty |
|
|
|
|
|
? response.body |
|
|
|
|
|
: 'Statut ${response.statusCode} sans contenu'; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
throw Exception('($message)'); |
|
|
} |
|
|
} |
|
|
} catch (e) { |
|
|
} catch (e) { |
|
|
if (mounted) { |
|
|
if (mounted) { |
|
|
|