fix(search) : préserver la recherche des listes via le fil d'Ariane
Auto Tag Develop / tag (push) Successful in 9s
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.
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
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 }
|
||||
}
|
||||
Reference in New Issue
Block a user