diff --git a/src/checkbox-group/CheckboxGroupWrapper.tsx b/src/checkbox-group/CheckboxGroupWrapper.tsx index df41a81a..83e5ad90 100644 --- a/src/checkbox-group/CheckboxGroupWrapper.tsx +++ b/src/checkbox-group/CheckboxGroupWrapper.tsx @@ -43,6 +43,7 @@ export const useCheckboxGroupContextWrapper = createHook< export const CheckboxGroupWrapper = createComponent({ as: "div", + memo: true, useHook: useCheckboxGroupContextWrapper, useCreateElement: (type, props, children) => { useWarning( diff --git a/src/tooltip/SliderTooltipReference.tsx b/src/tooltip/SliderTooltipReference.tsx index 50b0d309..70c011c1 100644 --- a/src/tooltip/SliderTooltipReference.tsx +++ b/src/tooltip/SliderTooltipReference.tsx @@ -123,5 +123,6 @@ export const useSliderTooltipReference = createHook< export const SliderTooltipReference = createComponent({ as: "div", + memo: true, useHook: useSliderTooltipReference, }); diff --git a/src/utils/react.ts b/src/utils/react.ts index dc0691a5..a0f9ae3b 100644 --- a/src/utils/react.ts +++ b/src/utils/react.ts @@ -100,18 +100,22 @@ export const getComponentProps = ( if (validChildren.length > 0) { validChildren.forEach(function (child) { + // For only React Element // @ts-ignore - if (componentMaps[child.type.displayName]) { + if (componentMaps[child?.type]) { // @ts-ignore - componentProps[componentMaps[child.type.displayName]] = child.props; // @ts-ignore - } else if (componentMaps[child.type.type.displayName]) { + componentProps[componentMaps[child?.displayName]] = child.props; + // For Forwarded Ref with React Element // @ts-ignore - componentProps[componentMaps[child.type.type.displayName]] = // @ts-ignore + } else if (componentMaps[child?.type?.render?.displayName]) { + // @ts-ignore + componentProps[componentMaps[child?.type?.render?.displayName]] = child.props; + // For Memoised Forwarded Ref with React Element // @ts-ignore - } else if (componentMaps[child.type.type.render.displayName]) { + } else if (componentMaps[child?.type?.type?.render?.displayName]) { // @ts-ignore - componentProps[componentMaps[child.type.type.render.displayName]] = // @ts-ignore + componentProps[componentMaps[child?.type?.type?.render?.displayName]] = child.props; } else { finalChildren.push(child);