+ {/* URL */}
+
+
+ URL du flux RSS
+
+ setForm((f) => ({ ...f, url: e.target.value }))}
+ />
+
+
+ {/* Nom */}
+
+ Nom descriptif
+ setForm((f) => ({ ...f, name: e.target.value }))}
+ />
+
+
+ {/* Type de flux */}
+
+
Type de contenu
+
+ {(["veille", "aap"] as FeedType[]).map((type) => (
+
setForm((f) => ({ ...f, feedType: type, defaultTypeVeille: type === "veille" ? "reglementaire" : "", defaultCategorieAap: type === "aap" ? "Handicap" : "" }))}
+ className={cn(
+ "flex items-center gap-3 p-3 rounded-lg border-2 text-left transition-all",
+ form.feedType === type
+ ? "border-primary bg-primary/5 text-primary"
+ : "border-border hover:border-primary/40"
+ )}
+ >
+
+ {type === "veille" ? : }
+
+
+
{type === "veille" ? "Veille Stratégique" : "Appels à Projets"}
+
{type === "veille" ? "Réglementaire, concurrentielle…" : "Handicap, PA, Enfance…"}
+
+
+ ))}
+
+
+
+ {/* Valeur par défaut selon le type */}
+ {form.feedType === "veille" && (
+
+ Type de veille par défaut
+ setForm((f) => ({ ...f, defaultTypeVeille: v as TypeVeille }))}
+ >
+
+
+
+
+ {TYPE_VEILLE_OPTIONS.map((t) => (
+ {TYPE_VEILLE_LABELS[t]}
+ ))}
+
+
+
+ )}
+
+ {form.feedType === "aap" && (
+
+ Catégorie AAP par défaut
+ setForm((f) => ({ ...f, defaultCategorieAap: v as CategorieAap }))}
+ >
+
+
+
+
+ {CATEGORIE_AAP_OPTIONS.map((c) => (
+ {c}
+ ))}
+
+
+
+ )}
+
+
+
+ {/* Règles d'automatisme */}
+
+
+
+ Règles d'automatisme
+
+
+ Si le titre ou le résumé d'un article contient le mot-clé, la {form.feedType === "veille" ? "catégorie de veille" : "catégorie AAP"} sera automatiquement assignée.
+
+
+ {/* Règles existantes */}
+ {form.autoRules.length > 0 && (
+
+ {form.autoRules.map((rule, idx) => (
+
+ {rule.keyword}
+ →
+ {rule.value}
+ removeRule(idx)}
+ className="ml-auto text-destructive hover:text-destructive/80 transition-colors"
+ >
+
+
+
+ ))}
+
+ )}
+
+ {/* Ajouter une règle */}
+
+
+ Mot-clé
+ setNewRuleKeyword(e.target.value)}
+ onKeyDown={(e) => e.key === "Enter" && addRule()}
+ className="h-8 text-sm"
+ />
+
+
→
+
+
+ {form.feedType === "veille" ? "Type de veille" : "Catégorie AAP"}
+
+ {form.feedType === "veille" ? (
+
+
+
+
+
+ {TYPE_VEILLE_OPTIONS.map((t) => (
+ {TYPE_VEILLE_LABELS[t]}
+ ))}
+
+
+ ) : (
+
+
+
+
+
+ {CATEGORIE_AAP_OPTIONS.map((c) => (
+ {c}
+ ))}
+
+
+ )}
+
+
+
+
+
+
+
+
+
+ {/* Actif */}
+
+
+
Flux actif
+
Désactivez pour suspendre la lecture sans supprimer le flux
+
+
setForm((f) => ({ ...f, isActive: v }))}
+ />
+
+
+
+