'use client' import { useLocation, useNavigate, useParams as useRouteParams, useRouter as useTanStackRouter, } from '@tanstack/react-router' type RouteParams = Record export const useRouter = () => { const navigate = useNavigate() const router = useTanStackRouter() return { push: (to: string) => navigate({ to }), replace: (to: string) => navigate({ to, replace: true }), refresh: () => router.invalidate(), } } export const usePathname = () => useLocation({ select: (location) => location.pathname }) export const useSearchParams = () => useLocation({ select: (location) => new URLSearchParams(location.searchStr), }) export const useParams = (): T => { const params = useRouteParams({ strict: false }) return params as T }