"use client"; import { useMemo } from "react"; import { usePathname, useRouter, useSearchParams } from "next/navigation"; export default function PlatformSwitcher(props: { currentPlatform: string; partRole: string; preserveQuery?: boolean; // keep sort/page/etc (but NOT platform) }) { const { currentPlatform, partRole, preserveQuery = true } = props; const router = useRouter(); const pathname = usePathname(); const searchParams = useSearchParams(); const queryString = useMemo(() => { if (!preserveQuery) return ""; // Copy params and DROP legacy platform param so it can’t conflict with the path const sp = new URLSearchParams(searchParams?.toString()); sp.delete("platform"); const q = sp.toString(); return q ? `?${q}` : ""; }, [searchParams, preserveQuery]); function go(platform: string) { router.replace( `/parts/p/${encodeURIComponent(platform)}/${encodeURIComponent(partRole)}${queryString}` ); } return (
Platform {/* debug only */} {pathname}
); }