**What** - Renames /admin-next -> /admin - Renames @medusajs/admin-sdk -> @medusajs/admin-bundler - Creates a new package called @medusajs/admin-sdk that will hold all tooling relevant to creating admin extensions. This is currently `defineRouteConfig` and `defineWidgetConfig`, but will eventually also export methods for adding custom fields, register translation, etc. - cc: @shahednasser we should update the examples in the docs so these functions are imported from `@medusajs/admin-sdk`. People will also need to install the package in their project, as it's no longer a transient dependency. - cc: @olivermrbl we might want to publish a changelog when this is merged, as it is a breaking change, and will require people to import the `defineXConfig` from the new package instead of `@medusajs/admin-shared`. - Updates CODEOWNERS so /admin packages does not require a review from the UI team.
25 lines
544 B
TypeScript
25 lines
544 B
TypeScript
import { useSearchParams } from "react-router-dom"
|
|
|
|
type QueryParams<T extends string> = {
|
|
[key in T]: string | undefined
|
|
}
|
|
|
|
export function useQueryParams<T extends string>(
|
|
keys: T[],
|
|
prefix?: string
|
|
): QueryParams<T> {
|
|
const [params] = useSearchParams()
|
|
|
|
// Use a type assertion to initialize the result
|
|
const result = {} as QueryParams<T>
|
|
|
|
keys.forEach((key) => {
|
|
const prefixedKey = prefix ? `${prefix}_${key}` : key
|
|
const value = params.get(prefixedKey) || undefined
|
|
|
|
result[key] = value
|
|
})
|
|
|
|
return result
|
|
}
|