Refactor: Centralisation des labels et icônes pour les enums

Centralise la gestion des libellés, couleurs et icônes pour `EquipmentStatus`, `EquipmentCategory`, et `ContainerType` en utilisant des extensions Dart.

- Ajout de nouvelles icônes SVG pour `flight-case`, `truss` et `tape`.
- Refactorisation des vues pour utiliser les nouvelles extensions, supprimant ainsi la logique d'affichage dupliquée.
- Mise à jour des `ChoiceChip` et des listes de filtres pour afficher les icônes à côté des labels.
This commit is contained in:
ElPoyo
2025-10-29 18:43:24 +01:00
parent 3fab69cb00
commit df6d54a007
16 changed files with 441 additions and 307 deletions

View File

@@ -25,8 +25,7 @@ class ContainerHeaderCard extends StatelessWidget {
children: [
Row(
children: [
Icon(
_getTypeIcon(container.type),
container.type.getIcon(
size: 60,
color: AppColors.rouge,
),
@@ -62,7 +61,7 @@ class ContainerHeaderCard extends StatelessWidget {
child: _buildInfoItem(
context,
'Type',
containerTypeLabel(container.type),
container.type.label,
Icons.category,
),
),
@@ -70,9 +69,9 @@ class ContainerHeaderCard extends StatelessWidget {
child: _buildInfoItem(
context,
'Statut',
_getStatusLabel(container.status),
container.status.label,
Icons.info,
statusColor: _getStatusColor(container.status),
statusColor: container.status.color,
),
),
],
@@ -148,50 +147,5 @@ class ContainerHeaderCard extends StatelessWidget {
final totalWeight = container.calculateTotalWeight(equipmentList);
return '${totalWeight.toStringAsFixed(1)} kg';
}
IconData _getTypeIcon(ContainerType type) {
switch (type) {
case ContainerType.flightCase:
return Icons.work;
case ContainerType.pelicase:
return Icons.work_outline;
case ContainerType.bag:
return Icons.shopping_bag;
case ContainerType.openCrate:
return Icons.inventory_2;
case ContainerType.toolbox:
return Icons.handyman;
}
}
String _getStatusLabel(EquipmentStatus status) {
switch (status) {
case EquipmentStatus.available:
return 'Disponible';
case EquipmentStatus.inUse:
return 'En prestation';
case EquipmentStatus.maintenance:
return 'Maintenance';
case EquipmentStatus.outOfService:
return 'Hors service';
default:
return 'Autre';
}
}
Color _getStatusColor(EquipmentStatus status) {
switch (status) {
case EquipmentStatus.available:
return Colors.green;
case EquipmentStatus.inUse:
return Colors.orange;
case EquipmentStatus.maintenance:
return Colors.blue;
case EquipmentStatus.outOfService:
return Colors.red;
default:
return Colors.grey;
}
}
}