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 { Stack as MantineStack, StackProps as MantineStackProps } from '@mantine/core';
import { forwardRef } from 'react';
import { forwardRef, memo, useMemo } from 'react';
export interface StackProps extends MantineStackProps {}
export const Stack = forwardRef<HTMLDivElement, StackProps>(({ children, ...props }, ref) => {
return (
<MantineStack
classNames={{ ...props.classNames }}
ref={ref}
style={{ ...props.style }}
{...props}
>
{children}
</MantineStack>
);
});
const _Stack = forwardRef<HTMLDivElement, StackProps>(
({ children, classNames, style, ...props }, ref) => {
const memoizedClassNames = useMemo(() => ({ ...classNames }), [classNames]);
const memoizedStyle = useMemo(() => ({ ...style }), [style]);
return (
<MantineStack
classNames={memoizedClassNames}
ref={ref}
style={memoizedStyle}
{...props}
>
{children}
</MantineStack>
);
},
);
_Stack.displayName = 'Stack';
export const Stack = memo(_Stack);