fix: stabilize kumo ui components
This commit is contained in:
@@ -16,13 +16,34 @@ const variantMap: Record<LegacyBadgeVariant, KumoBadgeProps["variant"]> = {
|
||||
danger: "error",
|
||||
};
|
||||
|
||||
export type BadgeProps = Omit<KumoBadgeProps, "variant" | "children"> & {
|
||||
export type BadgeProps = Omit<KumoBadgeProps, "variant"> & {
|
||||
variant?: LegacyBadgeVariant | KumoBadgeProps["variant"];
|
||||
children?: React.ReactNode;
|
||||
};
|
||||
|
||||
export function Badge({ className, variant = "default", ...props }: BadgeProps): React.ReactElement {
|
||||
const mappedVariant = variant in variantMap ? variantMap[variant as LegacyBadgeVariant] : (variant as KumoBadgeProps["variant"]);
|
||||
|
||||
return <KumoBadge className={cn("teatea-badge", className)} variant={mappedVariant} {...(props as KumoBadgeProps)} />;
|
||||
function isLegacyBadgeVariant(variant: BadgeProps["variant"]): variant is LegacyBadgeVariant {
|
||||
switch (variant) {
|
||||
case "default":
|
||||
case "secondary":
|
||||
case "outline":
|
||||
case "success":
|
||||
case "warning":
|
||||
case "danger":
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function mapBadgeVariant(variant: BadgeProps["variant"]): KumoBadgeProps["variant"] {
|
||||
if (isLegacyBadgeVariant(variant)) {
|
||||
return variantMap[variant];
|
||||
}
|
||||
|
||||
return variant;
|
||||
}
|
||||
|
||||
export function Badge({ className, variant = "default", ...props }: BadgeProps): React.ReactElement {
|
||||
const mappedVariant = mapBadgeVariant(variant);
|
||||
|
||||
return <KumoBadge className={cn("teatea-badge", className)} variant={mappedVariant} {...props} />;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user