import { useEffect } from 'react' // Permet à une page de définir son propre /<meta description> le // temps qu'elle est affichée. La SPA n'a qu'un seul index.html : sans ce // hook, toutes les routes partagent le même title/meta. Les valeurs // précédentes sont restaurées au démontage, donc quitter la page revient à // l'état d'avant (celui d'index.html, ou celui d'une page parente si elles // s'enchaînent). export default function usePageMeta({ title, description } = {}) { useEffect(() => { const previousTitle = document.title if (title) { document.title = title } const metaEl = document.querySelector('meta[name="description"]') const previousDescription = metaEl?.getAttribute('content') ?? null if (description && metaEl) { metaEl.setAttribute('content', description) } return () => { document.title = previousTitle if (metaEl && previousDescription !== null) { metaEl.setAttribute('content', previousDescription) } } }, [title, description]) }