Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: deprecates params and search params contexts #9581

Merged
merged 3 commits into from
Dec 2, 2024

Conversation

jacobsfletch
Copy link
Member

@jacobsfletch jacobsfletch commented Nov 27, 2024

As described in #9576, the SearchParamsProvider can become stale when navigating routes and relying on search params during initial render. This is because this context, along with the ParamsProvider, is duplicative to the internal lifecycle of useSearchParams and useParams from next/navigation– but always one render behind. Instead, we need to use the hooks directly from next/navigation as described in the jsdocs. This will also remove any abstraction over top the web standard for URLSearchParams.

For this reason, these providers and their corresponding hooks have been marked with the deprecated flag and will continue to behave as they do now, but will be removed in the next major release. This PR replaces all internal reliance on these hooks with next/navigation as suggested, except for the useParams hook, which was never used in the first place.

'use client'
- import { useSearchParams } from '@payloadcms/ui'
+ import { useSearchParams } from 'next/navigation'
+ import { parseSearchParams } from '@payloadcms/ui'

export function MyClientComponent() {
- const { searchParams } = useSearchParams()
+ const searchParams = useSearchParams()
+ const parsedParams = parseSearchParams(searchParams)

  // ...
}

MyClientComponent.tsx

@jacobsfletch jacobsfletch merged commit edc04ae into main Dec 2, 2024
53 checks passed
@jacobsfletch jacobsfletch deleted the chore/deprecate-contexts branch December 2, 2024 18:58
Copy link
Contributor

github-actions bot commented Dec 3, 2024

🚀 This is included in version v3.3.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants