From d342d75c4ac544f6acf571601970b983948c9769 Mon Sep 17 00:00:00 2001 From: Mil4n0r Date: Thu, 13 Nov 2025 13:06:25 +0100 Subject: [PATCH 1/4] Fixed problem with routing due to wrong ref --- packages/lib/src/base-menu/ItemAction.tsx | 72 ++++++++++++++++++----- 1 file changed, 57 insertions(+), 15 deletions(-) diff --git a/packages/lib/src/base-menu/ItemAction.tsx b/packages/lib/src/base-menu/ItemAction.tsx index 9dd1faf25..fc97735c8 100644 --- a/packages/lib/src/base-menu/ItemAction.tsx +++ b/packages/lib/src/base-menu/ItemAction.tsx @@ -92,19 +92,19 @@ const ItemAction = memo( const { depthLevel, selected, href, label, icon, collapseIcon, "aria-pressed": ariaPressed, ...rest } = props; return getWrapper( - - + + - + + ); + // return getWrapper( + // + // + // + // {!responsiveView && (modifiedBadge || (displayControlsAfter && collapseIcon)) && ( + // + // {modifiedBadge} + // {displayControlsAfter && collapseIcon && {collapseIcon}} + // + // )} + // + // + // ); }) ); From 6a1e15aca692bae6775832e2930bbd75c958a5ba Mon Sep 17 00:00:00 2001 From: Mil4n0r Date: Thu, 13 Nov 2025 14:19:14 +0100 Subject: [PATCH 2/4] Fixed accessibility and styles problems --- packages/lib/src/base-menu/ItemAction.tsx | 72 +++++---------------- packages/lib/src/tooltip/Tooltip.tsx | 76 +++++++++++++---------- 2 files changed, 57 insertions(+), 91 deletions(-) diff --git a/packages/lib/src/base-menu/ItemAction.tsx b/packages/lib/src/base-menu/ItemAction.tsx index fc97735c8..c402126de 100644 --- a/packages/lib/src/base-menu/ItemAction.tsx +++ b/packages/lib/src/base-menu/ItemAction.tsx @@ -92,19 +92,19 @@ const ItemAction = memo( const { depthLevel, selected, href, label, icon, collapseIcon, "aria-pressed": ariaPressed, ...rest } = props; return getWrapper( - - + + - + + ); - // return getWrapper( - // - // - // - // {!responsiveView && (modifiedBadge || (displayControlsAfter && collapseIcon)) && ( - // - // {modifiedBadge} - // {displayControlsAfter && collapseIcon && {collapseIcon}} - // - // )} - // - // - // ); }) ); diff --git a/packages/lib/src/tooltip/Tooltip.tsx b/packages/lib/src/tooltip/Tooltip.tsx index 9f976b2b1..8df21183f 100644 --- a/packages/lib/src/tooltip/Tooltip.tsx +++ b/packages/lib/src/tooltip/Tooltip.tsx @@ -1,5 +1,5 @@ import styled from "@emotion/styled"; -import { useContext } from "react"; +import { cloneElement, forwardRef, isValidElement, useContext } from "react"; import { Root, Trigger, Portal, Arrow, Content, Provider } from "@radix-ui/react-tooltip"; import TooltipPropsType, { TooltipWrapperProps } from "./types"; import TooltipContext from "./TooltipContext"; @@ -102,41 +102,49 @@ const triangleIcon = ( ); -export const Tooltip = ({ - children, - hasAdditionalContainer, - label, - position = "bottom", -}: { hasAdditionalContainer?: boolean } & TooltipPropsType) => { - const hasTooltip = useContext(TooltipContext); +export const Tooltip = forwardRef( + ({ children, hasAdditionalContainer, label, position = "bottom", ...rest }, ref) => { + const hasTooltip = useContext(TooltipContext); - return ( - - {label && !hasTooltip ? ( - - - - {hasAdditionalContainer ? {children} : children} - - - - {label} - - {triangleIcon} - - - - - - ) : ( - children - )} - - ); -}; + return ( + + {label && !hasTooltip ? ( + + + + {hasAdditionalContainer ? {children} : children} + + + + {label} + + {triangleIcon} + + + + + + ) : ( + children + )} + + ); + } +); -export const TooltipWrapper = ({ condition, children, label }: TooltipWrapperProps) => - condition ? {children} : <>{children}; +export const TooltipWrapper = forwardRef( + ({ condition, children, label, ...rest }, ref) => { + return condition ? ( + + {children} + + ) : isValidElement(children) ? ( + cloneElement(children, { ref, ...rest }) + ) : ( + children + ); + } +); const DxcTooltip = (props: TooltipPropsType) => ; From 55e1e4ebfc4cbab1dd831aaa54c0fbaca7b07bac Mon Sep 17 00:00:00 2001 From: Mil4n0r Date: Thu, 13 Nov 2025 14:21:11 +0100 Subject: [PATCH 3/4] Added support to ref in Tooltip --- packages/lib/src/tooltip/Tooltip.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/lib/src/tooltip/Tooltip.tsx b/packages/lib/src/tooltip/Tooltip.tsx index 8df21183f..c43efb30c 100644 --- a/packages/lib/src/tooltip/Tooltip.tsx +++ b/packages/lib/src/tooltip/Tooltip.tsx @@ -124,6 +124,8 @@ export const Tooltip = forwardRef + ) : isValidElement(children) ? ( + cloneElement(children, { ref, ...rest }) ) : ( children )} From 32d7ac9343a59087c904850f02f0dfa275bf20c5 Mon Sep 17 00:00:00 2001 From: Mil4n0r Date: Thu, 13 Nov 2025 14:56:35 +0100 Subject: [PATCH 4/4] Fixed collapsing logics for ref managing in Tabs/Tooltip --- packages/lib/src/tooltip/Tooltip.tsx | 90 ++++++++++++++-------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/packages/lib/src/tooltip/Tooltip.tsx b/packages/lib/src/tooltip/Tooltip.tsx index c43efb30c..f5a11b3d0 100644 --- a/packages/lib/src/tooltip/Tooltip.tsx +++ b/packages/lib/src/tooltip/Tooltip.tsx @@ -1,5 +1,5 @@ import styled from "@emotion/styled"; -import { cloneElement, forwardRef, isValidElement, useContext } from "react"; +import { cloneElement, isValidElement, useContext } from "react"; import { Root, Trigger, Portal, Arrow, Content, Provider } from "@radix-ui/react-tooltip"; import TooltipPropsType, { TooltipWrapperProps } from "./types"; import TooltipContext from "./TooltipContext"; @@ -102,51 +102,51 @@ const triangleIcon = ( ); -export const Tooltip = forwardRef( - ({ children, hasAdditionalContainer, label, position = "bottom", ...rest }, ref) => { - const hasTooltip = useContext(TooltipContext); +export const Tooltip = ({ + children, + hasAdditionalContainer, + label, + position = "bottom", + ...rest +}: { hasAdditionalContainer?: boolean } & TooltipPropsType) => { + const hasTooltip = useContext(TooltipContext); + return ( + + {label && !hasTooltip ? ( + + + + {hasAdditionalContainer ? {children} : children} + + + + {label} + + {triangleIcon} + + + + + + ) : isValidElement(children) ? ( + cloneElement(children, { ...rest }) + ) : ( + children + )} + + ); +}; - return ( - - {label && !hasTooltip ? ( - - - - {hasAdditionalContainer ? {children} : children} - - - - {label} - - {triangleIcon} - - - - - - ) : isValidElement(children) ? ( - cloneElement(children, { ref, ...rest }) - ) : ( - children - )} - - ); - } -); - -export const TooltipWrapper = forwardRef( - ({ condition, children, label, ...rest }, ref) => { - return condition ? ( - - {children} - - ) : isValidElement(children) ? ( - cloneElement(children, { ref, ...rest }) - ) : ( - children - ); - } -); +export const TooltipWrapper = ({ condition, children, label, ...rest }: TooltipWrapperProps) => + condition ? ( + + {children} + + ) : isValidElement(children) ? ( + cloneElement(children, { ...rest }) + ) : ( + children + ); const DxcTooltip = (props: TooltipPropsType) => ;