'use client'; import { useEffect } from 'react'; import { usePathname, useSearchParams } from 'next/navigation'; export function Analytics() { const pathname = usePathname(); const searchParams = useSearchParams(); const queryString = searchParams.toString(); const visitPath = queryString ? `${pathname}?${queryString}` : pathname; useEffect(() => { // Send beacon on mount and path change const sendBeacon = async () => { try { // Send beacon to THIS website's API, which will relay it to the admin dash await fetch('/api/analytics', { method: 'POST', body: JSON.stringify({ path: visitPath }), headers: { 'Content-Type': 'application/json', }, keepalive: true, }); } catch (e) { if (process.env.NODE_ENV !== 'production') { console.error('Analytics fail', e); } } }; sendBeacon(); }, [visitPath]); return null; }