'use client'; import { useEffect } from 'react'; export interface UsePageMetaParams { title?: string; description?: string; } export function usePageMeta({ title, description }: UsePageMetaParams) { useEffect(() => { if (!title) return; const previousTitle = document.title; document.title = title; return () => { document.title = previousTitle; }; }, [title]); useEffect(() => { if (!description) return; let tag = document.querySelector('meta[name="description"]'); const created = !tag; if (!tag) { tag = document.createElement('meta'); tag.name = 'description'; document.head.appendChild(tag); } const previousContent = tag.content; tag.content = description; return () => { if (created) { tag.remove(); } else { tag.content = previousContent; } }; }, [description]); }