/** * Writes the in-app navigation trail that funnel attribution reads. * * Renders nothing. It exists because document.referrer cannot answer "which * page did they come from" in an App Router app: a soft navigation creates no * document, so the browser never updates it. See the trail comment in * lib/analytics.ts. * * Mounted once in the root layout, so every route is recorded — including the * ones that fire no event of their own, which are still somebody else's * previous page. */ 'use client'; import { useEffect } from 'react'; import { usePathname } from 'next/navigation'; import { recordVisitedPath } from '@/lib/analytics'; export function RouteTrail() { const pathname = usePathname(); useEffect(() => { recordVisitedPath(pathname); }, [pathname]); return null; }