a tool for shared writing and social publishing
1"use client";
2
3import { usePathname } from "next/navigation";
4import { useEffect, useRef } from "react";
5
6export function NavStateTracker() {
7 const pathname = usePathname();
8 const lastState = useRef<string | null>(null);
9
10 useEffect(() => {
11 let state: string | null = null;
12 if (pathname === "/home") state = "home";
13 else if (pathname === "/reader" || pathname.startsWith("/reader/"))
14 state = "reader";
15
16 if (state && state !== lastState.current) {
17 lastState.current = state;
18 fetch("/api/update-nav-state", {
19 method: "POST",
20 headers: { "Content-Type": "application/json" },
21 body: JSON.stringify({ state }),
22 });
23 }
24 }, [pathname]);
25
26 return null;
27}