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 }
}
