Checkpoint: Correction de l'erreur Select.Item dans le formulaire de création de règles d'automatisme
Problème résolu : ✅ Erreur "Select.Item must have a value prop that is not an empty string" corrigée ✅ Le bouton "Nouvelle règle" fonctionne maintenant correctement ✅ Le formulaire de création de règles s'affiche sans erreur Modifications techniques : - client/src/pages/AutomationRules.tsx : Remplacement des valeurs vides ("") par une valeur spéciale "__NONE__" dans les trois Select (Type d'achat, Service concerné, Ventilation comptable) - Ajout de la logique de conversion : "__NONE__" → undefined lors de la sauvegarde - Conservation de l'affichage "Ne pas modifier" pour l'utilisateur Contexte : Le composant Select de shadcn/ui ne permet pas d'utiliser des chaînes vides comme valeur pour SelectItem. La solution consiste à utiliser une valeur sentinelle ("__NONE__") qui est convertie en undefined lors de la sauvegarde, permettant ainsi de ne pas modifier le champ correspondant lors de l'application de la règle. Cette correction permet maintenant de créer des règles d'automatisme sans erreur, avec la possibilité de choisir de ne pas modifier certains champs.
This commit is contained in:
@@ -434,14 +434,14 @@ export default function AutomationRules() {
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="typeAchat">Type d'achat</Label>
|
||||
<Select
|
||||
value={actions.typeAchat || ""}
|
||||
onValueChange={(value) => setActions({ ...actions, typeAchat: value || undefined })}
|
||||
value={actions.typeAchat || "__NONE__"}
|
||||
onValueChange={(value) => setActions({ ...actions, typeAchat: value === "__NONE__" ? undefined : value })}
|
||||
>
|
||||
<SelectTrigger>
|
||||
<SelectValue placeholder="Ne pas modifier" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectItem value="">Ne pas modifier</SelectItem>
|
||||
<SelectItem value="__NONE__">Ne pas modifier</SelectItem>
|
||||
<SelectItem value="CAPEX">CAPEX</SelectItem>
|
||||
<SelectItem value="OPEX">OPEX</SelectItem>
|
||||
</SelectContent>
|
||||
@@ -451,14 +451,14 @@ export default function AutomationRules() {
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="serviceConcerne">Service concerné</Label>
|
||||
<Select
|
||||
value={actions.serviceConcerne || ""}
|
||||
onValueChange={(value) => setActions({ ...actions, serviceConcerne: value || undefined })}
|
||||
value={actions.serviceConcerne || "__NONE__"}
|
||||
onValueChange={(value) => setActions({ ...actions, serviceConcerne: value === "__NONE__" ? undefined : value })}
|
||||
>
|
||||
<SelectTrigger>
|
||||
<SelectValue placeholder="Ne pas modifier" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectItem value="">Ne pas modifier</SelectItem>
|
||||
<SelectItem value="__NONE__">Ne pas modifier</SelectItem>
|
||||
{departments?.map((dept) => (
|
||||
<SelectItem key={dept.id} value={dept.name}>
|
||||
{dept.name}
|
||||
@@ -471,14 +471,14 @@ export default function AutomationRules() {
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="ventilationComptable">Ventilation comptable</Label>
|
||||
<Select
|
||||
value={actions.ventilationComptable || ""}
|
||||
onValueChange={(value) => setActions({ ...actions, ventilationComptable: value || undefined })}
|
||||
value={actions.ventilationComptable || "__NONE__"}
|
||||
onValueChange={(value) => setActions({ ...actions, ventilationComptable: value === "__NONE__" ? undefined : value })}
|
||||
>
|
||||
<SelectTrigger>
|
||||
<SelectValue placeholder="Ne pas modifier" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectItem value="">Ne pas modifier</SelectItem>
|
||||
<SelectItem value="__NONE__">Ne pas modifier</SelectItem>
|
||||
{allocations?.map((alloc) => (
|
||||
<SelectItem key={alloc.id} value={alloc.name}>
|
||||
{alloc.name}
|
||||
|
||||
Reference in New Issue
Block a user