Skip to content

fix(explore): prevent duplicate Date Range tooltips - #43425

Merged
rusackas merged 7 commits into
apache:masterfrom
ayush-singh-0601:fix/date-range-double-tooltip
Aug 28, 2026
Merged

rusackas merged 7 commits into
apache:masterfrom
ayush-singh-0601:fix/date-range-double-tooltip

Conversation

@ayush-singh-0601

Copy link
Copy Markdown
Contributor

SUMMARY

Hovering the Date Range info icon in Explore currently opens two tooltips at once: the control description and the resolved time-range tooltip on the field.

The info icon lives in ControlHeader and is absolutely positioned next to the label. The Date Range value is wrapped in its own tooltip in DateFilterLabel. Those two hover targets can overlap, so both tooltips fire together.

This keeps both tooltips. The field tooltip is suppressed only while the info icon is hovered, the icon stacking is isolated from the field, and the field tooltip closes immediately on mouse leave. Hovering the Date Range field still shows the time-range tooltip.

Fixes #43386

BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

Before — hovering the info icon shows two tooltips:

Before: two tooltips on the Date Range info icon

After — hovering the info icon shows only the description tooltip:

After: only the info icon tooltip

After — hovering the Date Range field still shows the field tooltip:

After: field tooltip still works

TESTING INSTRUCTIONS

  1. Start Superset locally (docker compose up --build or your usual setup).
  2. Log in and open a chart in Explore, for example Transactions.
  3. Hover the i icon next to the Date Range label.
  4. Confirm only the description tooltip appears.
  5. Hover the Date Range field itself.
  6. Confirm the resolved time-range tooltip still appears, and the description tooltip does not.

Unit coverage is in DateFilterLabel.test.tsx: it hovers the field, then the info icon, and asserts only one tooltip is shown.

ADDITIONAL INFORMATION

  • Has associated issue: Fixes 'i' icon next to the Date Range picker - two tooltip popups are shown #43386
  • Required feature flags:
  • Changes UI
  • Includes DB Migration (follow approval process in SIP-59)
    • Migration is atomic, supports rollback & is backwards-compatible
    • Confirm DB migration upgrade and downgrade tested
    • Runtime estimates and downtime expectations provided
  • Introduces new feature or API
  • Removes existing feature or API

@dosubot dosubot Bot added change:frontend Requires changing the frontend explore:design Related to the Explore UI/UX labels Aug 22, 2026
@bito-code-review

bito-code-review Bot commented Aug 22, 2026 •

Copy link
Copy Markdown
Contributor

Code Review Agent Run #fec59b

Actionable Suggestions - 0
Review Details
  • Files reviewed - 4 · Commit Range: d60fc0a..d60fc0a
    • superset-frontend/src/explore/components/ControlHeader.tsx
    • superset-frontend/src/explore/components/controls/DateFilterControl/DateFilterLabel.tsx
    • superset-frontend/src/explore/components/controls/DateFilterControl/tests/DateFilterLabel.test.tsx
    • superset-frontend/src/explore/components/controls/DateFilterControl/types.ts
  • Files skipped - 0
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful
    • Eslint (Linter) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers an incremental AI Review.

  • /review full - Manually triggers a full AI Review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

Comment thread superset-frontend/src/explore/components/ControlHeader.tsx Outdated
@bito-code-review

Copy link
Copy Markdown
Contributor

The flagged issue is correct. The Icons.InfoCircleOutlined component is currently inside a span that lacks keyboard focusability and button semantics, making the onClick handler inaccessible to keyboard users. To resolve this, you should convert the wrapper span into a button element with appropriate styling to maintain the layout, or add tabIndex={0} and role="button" along with keyboard event handlers to the existing wrapper.

Here is a concise fix using a button element:

<button
  type="button"
  data-test={`${name}-description-icon`}
  onMouseEnter={() => onDescriptionHoverChange?.(true)}
  onMouseLeave={() => onDescriptionHoverChange?.(false)}
  onClick={tooltipOnClick}
  css={css`
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
  `}
  aria-label={t('Show info tooltip')}
>
  <Tooltip
    id="description-tooltip"
    title={description}
    placement="top"
    mouseLeaveDelay={0}
  >
    <Icons.InfoCircleOutlined css={iconStyles} />
  </Tooltip>{' '}
</button>

Would you like me to check the rest of the comments on this PR and implement fixes for them as well?

superset-frontend/src/explore/components/ControlHeader.tsx

<button
  type="button"
  data-test={`${name}-description-icon`}
  onMouseEnter={() => onDescriptionHoverChange?.(true)}
  onMouseLeave={() => onDescriptionHoverChange?.(false)}
  onClick={tooltipOnClick}
  css={css`
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
  `}
  aria-label={t('Show info tooltip')}
>
  <Tooltip
    id="description-tooltip"
    title={description}
    placement="top"
    mouseLeaveDelay={0}
  >
    <Icons.InfoCircleOutlined css={iconStyles} />
  </Tooltip>{' '}
</button>

@codecov

codecov Bot commented Aug 22, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 78.94%. Comparing base (fd3849c) to head (887d918).
⚠️ Report is 40 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master   #43425      +/-   ##
==========================================
+ Coverage   78.93%   78.94%   +0.01%     
==========================================
  Files        2877     2877              
  Lines      165232   165255      +23     
  Branches    38184    38192       +8     
==========================================
+ Hits       130418   130461      +43     
+ Misses      32352    32332      -20     
  Partials     2462     2462              
Flag Coverage Δ
javascript 74.35% <100.00%> (+0.03%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@ayush-singh-0601

Copy link
Copy Markdown
Contributor Author

please see the changes i made and tell if there is any problem with the changes

@bito-code-review

bito-code-review Bot commented Aug 23, 2026 •

Copy link
Copy Markdown
Contributor

Code Review Agent Run #f73e30

Actionable Suggestions - 0
Review Details
  • Files reviewed - 3 · Commit Range: d60fc0a..f36e06b
    • superset-frontend/src/explore/components/ControlHeader.tsx
    • superset-frontend/src/explore/components/controls/DateFilterControl/tests/DateFilterLabel.test.tsx
    • superset-frontend/src/explore/components/controls/DateFilterControl/types.ts
  • Files skipped - 0
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful
    • Eslint (Linter) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers an incremental AI Review.

  • /review full - Manually triggers a full AI Review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

@ayush-singh-0601

Copy link
Copy Markdown
Contributor Author

/review full

@bito-code-review

bito-code-review Bot commented Aug 23, 2026 •

Copy link
Copy Markdown
Contributor

Code Review Agent Run #07b825

Actionable Suggestions - 0
Additional Suggestions - 1
  • superset-frontend/src/explore/components/ControlHeader.tsx - 1
    • Missing unit test coverage · Line 41-41
      This component lacks test coverage. The new `onDescriptionHoverChange` prop and tooltip hover behavior changes should be verified with unit tests to prevent regressions.
Review Details
  • Files reviewed - 4 · Commit Range: d60fc0a..f36e06b
    • superset-frontend/src/explore/components/ControlHeader.tsx
    • superset-frontend/src/explore/components/controls/DateFilterControl/DateFilterLabel.tsx
    • superset-frontend/src/explore/components/controls/DateFilterControl/tests/DateFilterLabel.test.tsx
    • superset-frontend/src/explore/components/controls/DateFilterControl/types.ts
  • Files skipped - 0
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful
    • Eslint (Linter) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers an incremental AI Review.

  • /review full - Manually triggers a full AI Review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

@ayush-singh-0601

Copy link
Copy Markdown
Contributor Author

/review full

@bito-code-review

bito-code-review Bot commented Aug 23, 2026 •

Copy link
Copy Markdown
Contributor

Code Review Agent Run #8a6a2e

Actionable Suggestions - 0
Review Details
  • Files reviewed - 5 · Commit Range: d60fc0a..3475796
    • superset-frontend/src/explore/components/ControlHeader.test.tsx
    • superset-frontend/src/explore/components/ControlHeader.tsx
    • superset-frontend/src/explore/components/controls/DateFilterControl/DateFilterLabel.tsx
    • superset-frontend/src/explore/components/controls/DateFilterControl/tests/DateFilterLabel.test.tsx
    • superset-frontend/src/explore/components/controls/DateFilterControl/types.ts
  • Files skipped - 0
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful
    • Eslint (Linter) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers an incremental AI Review.

  • /review full - Manually triggers a full AI Review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

@ayush-singh-0601

Copy link
Copy Markdown
Contributor Author

everything is done , please suggest some fix if needed

@bito-code-review

bito-code-review Bot commented Aug 23, 2026 •

Copy link
Copy Markdown
Contributor

Code Review Agent Run #5d2498

Actionable Suggestions - 0
Review Details
  • Files reviewed - 5 · Commit Range: d60fc0a..3475796
    • superset-frontend/src/explore/components/ControlHeader.test.tsx
    • superset-frontend/src/explore/components/ControlHeader.tsx
    • superset-frontend/src/explore/components/controls/DateFilterControl/DateFilterLabel.tsx
    • superset-frontend/src/explore/components/controls/DateFilterControl/tests/DateFilterLabel.test.tsx
    • superset-frontend/src/explore/components/controls/DateFilterControl/types.ts
  • Files skipped - 0
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful
    • Eslint (Linter) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers an incremental AI Review.

  • /review full - Manually triggers a full AI Review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

@ayush-singh-0601

Copy link
Copy Markdown
Contributor Author

/resolve

@ayush-singh-0601

Copy link
Copy Markdown
Contributor Author

Hi maintainers — I’ve addressed all current review feedback, including keyboard accessibility for the info icon and focused regression tests for the ControlHeader hover/keyboard behavior and Date Range tooltip suppression. The latest full reviews report no actionable suggestions.

The remaining required checks are red because their upstream jobs were cancelled before the test steps ran (the required jobs report RESULT=cancelled), not because of a test failure. Contributor reruns are blocked with a repository-admin permission error. Could a maintainer please approve and rerun the workflows? Thank you!

Comment thread superset-frontend/src/explore/components/ControlHeader.tsx
@netlify

netlify Bot commented Aug 26, 2026

Copy link
Copy Markdown

✅ Deploy Preview for superset-docs-preview ready!

Name Link
🔨 Latest commit 9c9df3f
🔍 Latest deploy log https://app.netlify.com/projects/superset-docs-preview/deploys/6a8eba273415b20008eb8109
😎 Deploy Preview https://deploy-preview-43425--superset-docs-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@ayush-singh-0601

Copy link
Copy Markdown
Contributor Author

/review full

@bito-code-review

bito-code-review Bot commented Aug 26, 2026 •

Copy link
Copy Markdown
Contributor

Code Review Agent Run #f70230

Actionable Suggestions - 0
Review Details
  • Files reviewed - 5 · Commit Range: d60fc0a..9c9df3f
    • superset-frontend/src/explore/components/ControlHeader.test.tsx
    • superset-frontend/src/explore/components/ControlHeader.tsx
    • superset-frontend/src/explore/components/controls/DateFilterControl/DateFilterLabel.tsx
    • superset-frontend/src/explore/components/controls/DateFilterControl/tests/DateFilterLabel.test.tsx
    • superset-frontend/src/explore/components/controls/DateFilterControl/types.ts
  • Files skipped - 0
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful
    • Eslint (Linter) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers an incremental AI Review.

  • /review full - Manually triggers a full AI Review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

@ayush-singh-0601

Copy link
Copy Markdown
Contributor Author

Hi maintainers, it looks like the remaining frontend CI failure is unrelated to this PR. The sharded-jest-tests (3) job passed 1,394 tests and failed only SqlEditor.test.tsx because JSDOM couldn’t parse an auto-generated Ant Design/Emotion CSS selector.

I tried rerunning the failed shard, but contributors don’t have permission to rerun workflow jobs in this repository. Could someone with access please rerun sharded-jest-tests (3) when convenient? Thanks!

@bito-code-review

bito-code-review Bot commented Aug 26, 2026 •

Copy link
Copy Markdown
Contributor

Code Review Agent Run #cd2a41

Actionable Suggestions - 0
Review Details
  • Files reviewed - 5 · Commit Range: d60fc0a..9c9df3f
    • superset-frontend/src/explore/components/ControlHeader.test.tsx
    • superset-frontend/src/explore/components/ControlHeader.tsx
    • superset-frontend/src/explore/components/controls/DateFilterControl/DateFilterLabel.tsx
    • superset-frontend/src/explore/components/controls/DateFilterControl/tests/DateFilterLabel.test.tsx
    • superset-frontend/src/explore/components/controls/DateFilterControl/types.ts
  • Files skipped - 0
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful
    • Eslint (Linter) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers an incremental AI Review.

  • /review full - Manually triggers a full AI Review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

@rusackas

Copy link
Copy Markdown
Member

Retarted the failing CI job. 🤞

@rusackas rusackas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Both threads hold up when I trace the actual diff, the icon now mirrors the same role="button" pattern already used for the label text a few lines down, and focus/blur drive the same suppression callback as mouse enter/leave, plus trigger={['hover', 'focus']} so the description tooltip actually responds to keyboard focus in the first place. DateFilterLabel.test.tsx's new test walks the full hover/focus/blur/unhover sequence asserting only one tooltip at a time, which is exactly the bug here. Just waiting on sharded-jest-tests (3), everything else is green.

Comment thread superset-frontend/src/explore/components/ControlHeader.tsx
Control.tsx only set hovered from mouse enter/leave, so tabbing into Date Range never mounted the info icon. Track hover and focus separately and pass hovered or focused so the icon is reachable from the keyboard.
@bito-code-review

bito-code-review Bot commented Aug 27, 2026 •

Copy link
Copy Markdown
Contributor

Code Review Agent Run #1306d6

Actionable Suggestions - 0
Review Details
  • Files reviewed - 2 · Commit Range: 9c9df3f..887d918
    • superset-frontend/src/explore/components/Control.test.tsx
    • superset-frontend/src/explore/components/Control.tsx
  • Files skipped - 0
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers an incremental AI Review.

  • /review full - Manually triggers a full AI Review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

@rusackas

Copy link
Copy Markdown
Member

887d918 covers the last open thread, the icon shows on keyboard focus now too, matching what I traced in my approval. CI's green. Let's get this merged.

@rusackas
rusackas merged commit e39bfb2 into apache:master Aug 28, 2026
80 checks passed
rusackas pushed a commit that referenced this pull request Aug 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

change:frontend Requires changing the frontend explore:design Related to the Explore UI/UX size/L

Projects

None yet

Development

Successfully merging this pull request may close these issues.

'i' icon next to the Date Range picker - two tooltip popups are shown

3 participants