Skip to content

When multiple tooltips are open controlled, the first tooltip would not close after the cursor hovers on the second tooltip. #6233

@GuoXiaoyang

Description

@GuoXiaoyang

Provide a general summary of the issue here

When multiple tooltips are open controlled, the first tooltip would not close after the cursor hovers on the second tooltip.

🤔 Expected Behavior?

The first tooltip would close after the cursor hovers on the second tooltip.

😯 Current Behavior

http://localhost:9003/?path=/story/tooltiptrigger--controlled-multiple-tooltips&providerSwitcher-express=false&strict=true

Screen.Recording.2024-04-19.at.11.00.10.AM.mov

💁 Possible Solution

  1. It seems the closeOpenTooltips function in packages/@react-stately/tooltip/src/useTooltipTriggerState.ts is not working properly when the isOpen prop is controlled, when the close handler is called, the currentValue(open) in useControlledState is still false thus not trigger the onOpenChange handler in the Tooltip.
  let closeOpenTooltips = () => {
    for (let hideTooltipId in tooltips) {
      if (hideTooltipId !== id) {
        tooltips[hideTooltipId](true);
        delete tooltips[hideTooltipId];
      }
    }
  };

🔦 Context

No response

🖥️ Steps to Reproduce

  1. The story in the react-spectrum repo can reproduce this issue: http://localhost:9003/?path=/story/tooltiptrigger--controlled-multiple-tooltips&providerSwitcher-express=false&strict=true

Version

3.32.1

What browsers are you seeing the problem on?

Chrome

If other, please specify.

No response

What operating system are you using?

MacOS

🧢 Your Company/Team

No response

🕷 Tracking Issue

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions