012d552ddc
Auto Tag Develop / tag (push) Successful in 9s
Le bouton Retour (cb49c69) restaurait l'état des listes via router.back(),
mais le fil d'Ariane faisait des liens en chemin nu (sans ?q=...), ce qui
réinitialisait recherche/tri/pagination en cliquant un crumb de liste depuis
une fiche.
- useListQueryMemory : singleton mémorisant la dernière query vue sur chaque
route-liste (SPA).
- AppBreadcrumb : mémorise la query des routes-listes et la réinjecte dans les
crumbs pointant vers une liste (helper listTo). Couvre composants, pièces,
produits et machines, y compris pages catégorie/création.
18 lines
765 B
TypeScript
18 lines
765 B
TypeScript
import { reactive } from 'vue'
|
|
import type { LocationQuery } from 'vue-router'
|
|
|
|
// Singleton module-level : mémorise la dernière query (recherche / tri /
|
|
// pagination / filtres) vue sur chaque route-liste. Permet aux navigations qui
|
|
// ne passent PAS par l'historique du navigateur (fil d'Ariane, menu) de
|
|
// restaurer l'état de la liste, là où router.back() le ferait pour le bouton
|
|
// Retour. SPA only (SSR off) — pas de fuite d'état entre requêtes.
|
|
const memory = reactive<Record<string, LocationQuery>>({})
|
|
|
|
export function useListQueryMemory() {
|
|
const remember = (path: string, query: LocationQuery) => {
|
|
memory[path] = { ...query }
|
|
}
|
|
const recall = (path: string): LocationQuery | undefined => memory[path]
|
|
return { remember, recall }
|
|
}
|