---
suivi: 1383
date: 2026-09-01
sujet: programme_selection_apres_recherche
chantier: juridique
type: bugfix
statut: poussé
hash: 5b7a12b1
fichiers:
  - resources/js/Components/Programmes/ProgrammeSearchSelect.vue
  - tests/Unit/DemandeJuridiqueProgrammeSelect1383SourceTest.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - public/build/
---

## PROMPT ENVOYÉ

SUIVI #1383 — sélection programme après recherche (chevron OK, clic résultat KO).

## FICHES LUES

- **#1381 LEÇON** : AutoComplete PV4 dropdown → `@option-select` ; chemin recherche différent.

## SYNTHÈSE

### Cause (hypothèse 2 — prouvée)
Après saisie + clic suggestion, PrimeVue `forceSelection` déclenche `onChange` au **blur** :
compare le texte tapé (ex. « herm ») au **libellé complet** (`isOptionMatched` L899
AutoComplete.vue) → échec → `$emit('clear')`. Notre `@clear="onClear"` remettait
`model` à null et `emit('selected', null)` → annulation silencieuse du PATCH (#1381).

Chevron sans saisie : input vide ou libellé complet → pas de clear spurious.

### Hypothèses écartées
- **1 (événement manquant)** : clic recherche émet bien `option-select` (L180/L581) — déjà écouté #1381.
- **3 (id absent)** : payload identique (`ProgrammeSaisieSelectPresenter::toSelectItem`).

### Correctif
`ignoreNextClear` dans `ProgrammeSearchSelect.vue` : ignorer le `clear` forceSelection
post-sélection ; `selected` avant `model` ; reset `lastQuery`.

## DÉPLOIEMENT-TEST

Demande 6 : chevron + recherche « herm » + clavier Entrée ; dépôt facture idem.

## LEÇON

AutoComplete + forceSelection + handler `@clear` : toujours filtrer le clear blur post-sélection.
