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
+22 -13
View File
@@ -1,17 +1,26 @@
import { Group as MantineGroup, GroupProps as MantineGroupProps } from '@mantine/core';
import { forwardRef } from 'react';
import { forwardRef, memo, useMemo } from 'react';
export interface GroupProps extends MantineGroupProps {}
export const Group = forwardRef<HTMLDivElement, GroupProps>(({ children, ...props }, ref) => {
return (
<MantineGroup
classNames={{ ...props.classNames }}
ref={ref}
style={{ ...props.style }}
{...props}
>
{children}
</MantineGroup>
);
});
const _Group = forwardRef<HTMLDivElement, GroupProps>(
({ children, classNames, style, ...props }, ref) => {
const memoizedClassNames = useMemo(() => ({ ...classNames }), [classNames]);
const memoizedStyle = useMemo(() => ({ ...style }), [style]);
return (
<MantineGroup
classNames={memoizedClassNames}
ref={ref}
style={memoizedStyle}
{...props}
>
{children}
</MantineGroup>
);
},
);
_Group.displayName = 'Group';
export const Group = memo(_Group);