feat(admin-sdk,admin-bundler,admin-shared,medusa): Restructure admin packages (#8988)

**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.
This commit is contained in:
Kasper Fabricius Kristensen
2024-09-04 21:00:25 +02:00
committed by GitHub
parent beaa851302
commit 0fe1201435
1440 changed files with 122 additions and 86 deletions
@@ -0,0 +1 @@
export * from "./metadata-section"
@@ -0,0 +1,49 @@
import { ArrowUpRightOnBox } from "@medusajs/icons"
import { Badge, Container, Heading, IconButton } from "@medusajs/ui"
import { useTranslation } from "react-i18next"
import { Link } from "react-router-dom"
type MetadataSectionProps<TData extends object> = {
data: TData
href?: string
}
export const MetadataSection = <TData extends object>({
data,
href = "metadata/edit",
}: MetadataSectionProps<TData>) => {
const { t } = useTranslation()
if (!data) {
return null
}
if (!("metadata" in data)) {
return null
}
const numberOfKeys = data.metadata ? Object.keys(data.metadata).length : 0
return (
<Container className="flex items-center justify-between">
<div className="flex items-center gap-x-3">
<Heading level="h2">{t("metadata.header")}</Heading>
<Badge size="2xsmall" rounded="full">
{t("metadata.numberOfKeys", {
count: numberOfKeys,
})}
</Badge>
</div>
<IconButton
size="small"
variant="transparent"
className="text-ui-fg-muted hover:text-ui-fg-subtle"
asChild
>
<Link to={href}>
<ArrowUpRightOnBox />
</Link>
</IconButton>
</Container>
)
}