fix : sélecteur d'exercice vide par défaut sur l'onglet Congés
Le watch sur le changement de phase (useEmployeeLeave/useEmployeeRtt) remettait selectedYear à null pendant l'await du chargement eager du récap congés, à la résolution initiale de la phase (undefined → phase courante). Comme le chargement eager marquait ensuite leaveDataLoaded=true et que le watch de useEmployeeDetailPage ignore la résolution initiale (oldId === undefined), l'année restait à null et le <select> s'affichait vide. L'onglet RTT y échappait car chargé en lazy. Ajoute le garde oldId === undefined dans les watchs des deux composables, même convention que useEmployeeDetailPage : la résolution initiale est ignorée, seul un vrai changement de phase réinitialise l'année. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -124,8 +124,14 @@ export const useEmployeeLeave = (
|
||||
selectedLeaveYear.value = null
|
||||
}
|
||||
|
||||
watch(() => selectedPhase.value?.id, () => {
|
||||
// Reset l'année car la plage a peut-être changé.
|
||||
watch(() => selectedPhase.value?.id, (newId, oldId) => {
|
||||
// Ignore la résolution initiale (undefined → phase courante au montage) :
|
||||
// le chargement eager du récap initialise déjà l'année sélectionnée. Sans ce
|
||||
// garde, ce watch (asynchrone) s'exécute PENDANT l'await du chargement eager et
|
||||
// remet selectedLeaveYear à null, ce qui laisse le sélecteur d'exercice vide.
|
||||
// Même convention que le watch de useEmployeeDetailPage.
|
||||
if (oldId === undefined || newId === oldId) return
|
||||
// Changement de phase réel : reset l'année car la plage a peut-être changé.
|
||||
selectedLeaveYear.value = null
|
||||
leaveDataLoaded.value = false
|
||||
// Le rechargement effectif est piloté par useEmployeeDetailPage.
|
||||
|
||||
@@ -95,8 +95,12 @@ export const useEmployeeRtt = (
|
||||
selectedRttYear.value = null
|
||||
}
|
||||
|
||||
watch(() => selectedPhase.value?.id, () => {
|
||||
// Reset l'année car la plage a peut-être changé.
|
||||
watch(() => selectedPhase.value?.id, (newId, oldId) => {
|
||||
// Ignore la résolution initiale (undefined → phase courante au montage) :
|
||||
// l'initialisation de l'année est pilotée par loadRttData. Même convention que
|
||||
// le watch de useEmployeeDetailPage (évite un reset concurrent du sélecteur).
|
||||
if (oldId === undefined || newId === oldId) return
|
||||
// Changement de phase réel : reset l'année car la plage a peut-être changé.
|
||||
selectedRttYear.value = null
|
||||
rttDataLoaded.value = false
|
||||
// Le rechargement effectif est piloté par useEmployeeDetailPage.
|
||||
|
||||
Reference in New Issue
Block a user