optimize various base components

This commit is contained in:
jeffvli
2026-01-02 12:46:35 -08:00
parent a66c67e86d
commit d06d1674d1
31 changed files with 669 additions and 393 deletions
+12 -8
View File
@@ -3,6 +3,7 @@ import {
Badge as MantineBadge,
BadgeProps as MantineBadgeProps,
} from '@mantine/core';
import { useMemo } from 'react';
import styles from './badge.module.css';
@@ -12,17 +13,20 @@ export interface BadgeProps
extends ElementProps<'div', keyof MantineBadgeProps>,
MantineBadgeProps {}
const _Badge = ({ children, classNames, variant = 'default', ...props }: BadgeProps) => {
const BaseBadge = ({ children, classNames, variant = 'default', ...props }: BadgeProps) => {
const memoizedClassNames = useMemo(
() => ({
root: styles.root,
...classNames,
}),
[classNames],
);
return (
<MantineBadge
classNames={{ root: styles.root, ...classNames }}
radius="md"
variant={variant}
{...props}
>
<MantineBadge classNames={memoizedClassNames} radius="md" variant={variant} {...props}>
{children}
</MantineBadge>
);
};
export const Badge = createPolymorphicComponent<'button', BadgeProps>(_Badge);
export const Badge = createPolymorphicComponent<'button', BadgeProps>(BaseBadge);