diff --git a/apps/builder/app/canvas/instance-hovering.ts b/apps/builder/app/canvas/instance-hovering.ts index e12b57ed37a7..68e5fd0c827b 100644 --- a/apps/builder/app/canvas/instance-hovering.ts +++ b/apps/builder/app/canvas/instance-hovering.ts @@ -83,12 +83,13 @@ export const subscribeInstanceHovering = () => { // update rect whenever hovered instance is changed const unsubscribeHoveredInstanceId = hoveredInstanceSelectorStore.subscribe( (instanceSelector) => { - if (instanceSelector === undefined) { - return; - } - const element = getElementByInstanceSelector(instanceSelector); - if (element !== undefined) { - updateHoveredRect(element); + if (instanceSelector) { + const element = getElementByInstanceSelector(instanceSelector); + if (element !== undefined) { + updateHoveredRect(element); + } + } else { + hoveredInstanceOutlineStore.set(undefined); } } ); diff --git a/packages/design-system/src/components/tree/tree-node.tsx b/packages/design-system/src/components/tree/tree-node.tsx index a1819433d1ca..5c92c946b585 100644 --- a/packages/design-system/src/components/tree/tree-node.tsx +++ b/packages/design-system/src/components/tree/tree-node.tsx @@ -248,8 +248,7 @@ const useScrollIntoView = ( }; export type TreeItemRenderProps = { - onMouseEnter?: (itemSelector: ItemSelector) => void; - onMouseLeave?: (itemSelector: ItemSelector) => void; + onHover?: (itemSelector?: ItemSelector) => void; itemData: Data; itemSelector: ItemSelector; dropTargetItemSelector?: ItemSelector; @@ -268,8 +267,7 @@ export const TreeItemBody = ({ parentIsSelected = false, isSelected = false, dropTargetItemSelector, - onMouseEnter, - onMouseLeave, + onHover, itemData, itemSelector, level, @@ -332,8 +330,8 @@ export const TreeItemBody = ({ return ( onMouseEnter(itemSelector))} - onMouseLeave={onMouseLeave && (() => onMouseLeave(itemSelector))} + onMouseEnter={onHover && (() => onHover(itemSelector))} + onMouseLeave={onHover && (() => onHover())} isSelected={isSelected} parentIsSelected={parentIsSelected} enableHoverState={isDragging === false} @@ -411,8 +409,7 @@ export type TreeNodeProps = { parentIsSelected?: boolean; onSelect?: (itemSelector: ItemSelector) => void; - onMouseEnter?: (itemSelector: ItemSelector) => void; - onMouseLeave?: (itemSelector: ItemSelector) => void; + onHover?: (itemSelector?: ItemSelector) => void; animate?: boolean; @@ -432,8 +429,7 @@ export const TreeNode = ({ setIsExpanded, selectedItemSelector, onSelect, - onMouseEnter, - onMouseLeave, + onHover, onExpandTransitionEnd, dropTargetItemSelector, renderItem, @@ -489,8 +485,7 @@ export const TreeNode = ({ {itemIsHidden === false && renderItem({ dropTargetItemSelector, - onMouseEnter, - onMouseLeave, + onHover, itemData, itemSelector, parentIsSelected, diff --git a/packages/design-system/src/components/tree/tree.tsx b/packages/design-system/src/components/tree/tree.tsx index dc8b98823ffc..18afbdbf4e03 100644 --- a/packages/design-system/src/components/tree/tree.tsx +++ b/packages/design-system/src/components/tree/tree.tsx @@ -295,8 +295,7 @@ export const Tree = ({ isItemHidden={isItemHidden} animate={animate} onSelect={onSelect} - onMouseEnter={onHover} - onMouseLeave={onHover} + onHover={onHover} selectedItemSelector={selectedItemSelector} itemData={root} getIsExpanded={getIsExpanded}