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
+17 -13
View File
@@ -1,17 +1,21 @@
import { Flex as MantineFlex, FlexProps as MantineFlexProps } from '@mantine/core';
import { forwardRef } from 'react';
import { forwardRef, memo, useMemo } from 'react';
export interface FlexProps extends MantineFlexProps {}
export const Flex = forwardRef<HTMLDivElement, FlexProps>(({ children, ...props }, ref) => {
return (
<MantineFlex
classNames={{ ...props.classNames }}
ref={ref}
style={{ ...props.style }}
{...props}
>
{children}
</MantineFlex>
);
});
const _Flex = forwardRef<HTMLDivElement, FlexProps>(
({ children, classNames, style, ...props }, ref) => {
const memoizedClassNames = useMemo(() => ({ ...classNames }), [classNames]);
const memoizedStyle = useMemo(() => ({ ...style }), [style]);
return (
<MantineFlex classNames={memoizedClassNames} ref={ref} style={memoizedStyle} {...props}>
{children}
</MantineFlex>
);
},
);
_Flex.displayName = 'Flex';
export const Flex = memo(_Flex);