Thème
Superviseur — Frontend / stores/unsaved-changes.store / useUnsavedChangesStore
Variable: useUnsavedChangesStore
ts
const useUnsavedChangesStore: StoreDefinition<"unsaved-changes", Pick<{
guard: Ref<UnsavedGuard | null, UnsavedGuard | null>;
register: (next) => void;
unregister: (previous) => void;
confirmLeave: () => Promise<boolean>;
}, "guard">, Pick<{
guard: Ref<UnsavedGuard | null, UnsavedGuard | null>;
register: (next) => void;
unregister: (previous) => void;
confirmLeave: () => Promise<boolean>;
}, never>, Pick<{
guard: Ref<UnsavedGuard | null, UnsavedGuard | null>;
register: (next) => void;
unregister: (previous) => void;
confirmLeave: () => Promise<boolean>;
}, "register" | "unregister" | "confirmLeave">>;Défini dans: stores/unsaved-changes.store.ts:20
Garde unique de sortie d'un écran portant des modifications non enregistrées.
Remarks
Une même garde couvre toutes les façons de quitter un écran : changer de section de Paramètres, cliquer dans le menu latéral, changer de route. Un écran d'édition l'enregistre à son ouverture ; tout ce qui déplace l'opérateur ailleurs appelle confirmLeave d'abord.
Une seule garde à la fois : deux éditeurs ne sont jamais ouverts ensemble, et l'enregistrement d'une garde remplace la précédente.