6c7e76b551
This adapts the new client hooks of `usePathname`, `useSearchParams`, and `useRouter` to work within the `pages/` directory to aid users attempting to migrate shared components over to the `app/` directory. > **Exception:** > When the pages router is not ready, `useSearchParams` will return an empty `URLSearchParams`. This mirrors the behavior seen in the `pages/` directory today in that `router.query` is not available until the client hydrates. This also adds a new option for `useRouter` to bring it line with the correct typings with the app directory. By default, calling `useRouter()` will return the type `NextRouter | null` to represent what you get when you call it from a component originating from the app directory. If you want to instead force it to return `NextRouter` as it does today, you can pass a boolean into the `useRouter` call as such: ```ts const router = useRouter() // typeof router === NextRouter | null const router = useRouter(true) // typeof router === NextRouter ``` This change is designed to ease the incremental adoption of app. |
||
---|---|---|
.. | ||
components | ||
dev | ||
legacy | ||
portal | ||
add-base-path.ts | ||
add-locale.ts | ||
app-bootstrap.js | ||
app-index.tsx | ||
app-next-dev.js | ||
app-next.js | ||
detect-domain-locale.ts | ||
get-domain-locale.ts | ||
has-base-path.ts | ||
head-manager.ts | ||
image.tsx | ||
index.tsx | ||
link.tsx | ||
next-dev.js | ||
next.js | ||
normalize-locale-path.ts | ||
normalize-trailing-slash.ts | ||
page-loader.ts | ||
performance-relayer-app.ts | ||
performance-relayer.ts | ||
remove-base-path.ts | ||
remove-locale.ts | ||
request-idle-callback.ts | ||
route-announcer.tsx | ||
route-loader.ts | ||
router.ts | ||
script.tsx | ||
trusted-types.ts | ||
use-intersection.tsx | ||
with-router.tsx |