cal/packages/lib/hooks/useParamsWithFallback.ts
Benny Joo 13ec810cb9
fix: [app dir bootstrapping 8] `useParamsWithFallback` hook and add tests (#12041)
* fix: first solution using RouterContext

* fix: second solution by importing router from next/compat/router

* fix return type
2023-11-07 13:48:02 +00:00

19 lines
556 B
TypeScript

"use client";
import { useRouter as useCompatRouter } from "next/compat/router";
import { useParams } from "next/navigation";
import type { ParsedUrlQuery } from "querystring";
interface Params {
[key: string]: string | string[];
}
/**
* This hook is a workaround until pages are migrated to app directory.
*/
export function useParamsWithFallback(): Params | ParsedUrlQuery {
const params = useParams(); // always `null` in pages router
const router = useCompatRouter(); // always `null` in app router
return params ?? router?.query ?? {};
}