**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.
20 lines
511 B
TypeScript
20 lines
511 B
TypeScript
import { MutableRefObject, Ref, RefCallback } from "react"
|
|
|
|
// Utility function to set multiple refs
|
|
function setRef<T>(ref: Ref<T> | undefined, value: T) {
|
|
if (typeof ref === "function") {
|
|
ref(value)
|
|
} else if (ref && "current" in ref) {
|
|
;(ref as MutableRefObject<T>).current = value
|
|
}
|
|
}
|
|
|
|
// Combining multiple refs into one
|
|
export const useCombinedRefs = <T,>(
|
|
...refs: (Ref<T> | undefined)[]
|
|
): RefCallback<T> => {
|
|
return (value: T) => {
|
|
refs.forEach((ref) => setRef(ref, value))
|
|
}
|
|
}
|