Skip to content

NIFI-16172 - Fix: Multiple nifiTooltip hover tooltips can remain open at once and can get stuck open indefinitely - #11511

Merged
mcgilman merged 1 commit into
apache:mainfrom
rfellows:NIFI-16172
Aug 6, 2026
Merged

NIFI-16172 - Fix: Multiple nifiTooltip hover tooltips can remain open at once and can get stuck open indefinitely#11511
mcgilman merged 1 commit into
apache:mainfrom
rfellows:NIFI-16172

Conversation

@rfellows

@rfellows rfellows commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Summary

NIFI-16172

Fixes the shared nifiTooltip hover directive so at most one tooltip is visible, stuck-open tooltips self-heal when overlay mouseleave is dropped, and delayed open does not fire after a quick pass-through. Also enables delayed close on comment / validation-error tips in listing tables so users can move onto long scrollable tooltip content.

Problem

Hovering the “more details” icon column (comments, validation errors, bulletins) in listing tables could leave multiple tooltips open at once. In some cases a tooltip stayed visible indefinitely after the pointer left, until another tip opened or the view was destroyed.

Separately, comment and validation-error tips used [delayClose]="false", so long scrollable tooltips closed as soon as the pointer left the trigger and could not be scrolled. Bulletin tips already used delayed close.

Most noticeable on Controller Services, Reporting Tasks, Parameter Providers, Connectors, Controller Service references, Manage Remote Ports, and Flow Analysis Rules.

Changes

Directive (nifi-tooltip.directive.ts):

  • Enforce a single active tooltip via a static openInstance; attaching a new tip detaches the previous one
  • Drive open/close from live :hover on trigger and tip instead of a sticky cached hover flag
  • Use a self-rescheduling close watchdog that closes only when the pointer is over neither trigger nor tip (overlay mouseleave remains a fast path)
  • Gate delayed open on the trigger still being hovered
  • Attach overlay listeners to the persistent overlay pane; reset timers / clear the static instance on detach and destroy

Templates: set [delayClose]="true" on comment / validation-error (and related) tips in the listing tables above so behavior matches bulletins and scrollable content remains reachable.

Tests: Vitest coverage for the directive (9 tests), including single-active coordination, keep-open while hovering the tip, self-heal when tip mouseleave is dropped, cancel pending open, and no-open after delay when the trigger is no longer hovered. Spec afterEach resets the static openInstance.

Testing

npx nx test shared --testFile=nifi-tooltip.directive.spec.ts

… at once and can get stuck open indefinitely
@rfellows rfellows added the ui Pull requests for work relating to the user interface label Aug 5, 2026
@mcgilman

mcgilman commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Reviewing...

@mcgilman mcgilman left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks for the PR @rfellows!

@mcgilman
mcgilman merged commit 643a824 into apache:main Aug 6, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ui Pull requests for work relating to the user interface

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants