[EuiPopover] Refactor and remove delay - #10066
weronikaolejniczak wants to merge 24 commits into
Conversation
📷 2 visual difference(s) foundLook at the visual diff below. If everything is expected, run Approve visual changes to update baselines, re-run the job or make appropriate fixes. See the visual regression testing wiki for more information. Expand to revieweuicallout (1 difference)
euipopover (1 difference)
|
📷 2 visual difference(s) foundLook at the visual diff below. If everything is expected, run Approve visual changes to update baselines, re-run the job or make appropriate fixes. See the visual regression testing wiki for more information. Expand to revieweuicallout (1 difference)
euipopover (1 difference)
|
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The ref contract is unsound, and resize and dynamic-positioning behavior can become stale.
Get a fresh assessment by requesting another Copilot review.
Review effort: Balanced
Findings: 3
Open (3)
What changed in this PR
Refactors EuiPopover to hooks, removes transition delays, improves repositioning, and aligns animation with EuiToolTip.
Changes:
- Converts the popover to a functional, ref-forwarding component.
- Introduces immediate opacity animation and expanded repositioning.
- Consolidates and extends tests while memoizing related styles.
| File | Description |
|---|---|
selectable_template_sitewide_popover.tsx |
Requires the close callback. |
popover.tsx |
Implements the functional popover. |
popover.test.tsx |
Expands consolidated tests. |
popover.stories.tsx |
Adds interactive coverage. |
popover.rtl.test.tsx |
Removes the redundant suite. |
popover_title.tsx |
Memoizes title styles. |
_popover_panel.tsx |
Refactors panel styling. |
_popover_panel.test.tsx |
Updates panel tests. |
_popover_panel.styles.ts |
Adds the opacity animation. |
_popover_panel.test.tsx.snap |
Updates panel snapshots. |
popover_footer.tsx |
Memoizes footer styles. |
_popover_arrow.tsx |
Memoizes arrow styles. |
input_popover.tsx |
Uses the new ref API. |
index.ts |
Exports the ref type. |
popover.test.tsx.snap |
Updates consolidated snapshots. |
popover.rtl.test.tsx.snap |
Removes obsolete snapshots. |
split_button_actions.tsx |
Uses the props type directly. |
10066.md |
Documents the visual behavior change. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
120f6d8 to
d818b9c
Compare
📷 4 visual difference(s) foundLook at the visual diff below. If everything is expected, run Approve visual changes to update baselines, re-run the job or make appropriate fixes. See the visual regression testing wiki for more information. Expand to revieweuicallout (1 difference)
euipopover (3 differences)
|
d818b9c to
40a216c
Compare
📷 3 visual difference(s) foundLook at the visual diff below. If everything is expected, run Approve visual changes to update baselines, re-run the job or make appropriate fixes. See the visual regression testing wiki for more information. Expand to revieweuipopover (3 differences)
|
71fa220 to
3fb2b15
Compare
📷 3 visual difference(s) foundLook at the visual diff below. If everything is expected, run Approve visual changes to update baselines, re-run the job or make appropriate fixes. See the visual regression testing wiki for more information. Expand to revieweuipopover (3 differences)
|
ae438c9 to
34b15de
Compare
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The refactor introduces an undocumented ref API break, unstable imperative handles, and SSR warnings.
Get a fresh assessment by requesting another Copilot review.
Review effort: Balanced
Findings: 1
Open (3)
|
This PR contains breaking changes. The opener of this pull request is asked to perform the following due diligence steps below, to assist EUI in our next Kibana upgrade:
|
69691f6 to
61c4f3c
Compare
Kibana Regression Integration TestStatus: 💔 Kibana CI failed Please check Kibana CI logs for details. |
10a47ff to
c62581d
Compare
Co-authored-by: Cursor <cursoragent@cursor.com>
c62581d to
f0f3461
Compare
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
💚 Build Succeeded
History
|
💚 Build Succeeded
History
|














Summary
Tip
I recommend reviewing commit-by-commit. They are granular and self-enclosed.
Closes #9484
Closes #10065
This PR:
EuiPopoverfrom class component to functional component,EuiToolTip,hasOwnPropertywithhasOwn,The reason I'm doing both things at once is so that we only test the component once, not twice. Only the transition removal and animation update require the changelog.
API Changes
EuiPopoverrefEuiPopoverclass instance toEuiPopoverRef, which exposespositionPopoverFluid. Consumers typing refs asEuiPopovermust migrate toEuiPopoverRef.Screenshots
Transition
Flickering reposition
Impact Assessment
Note: Most PRs should be tested in Kibana to help gauge their Impact before merging.
EuiPopoverrefs must useEuiPopoverRefinstead of the former class instance type.The component still supports
refbut its type changes from the class instance toEuiPopoverRef, which exposespositionPopoverFluid.Impact level: 🟡 Moderate
Kibana test PR: elastic/kibana#292619
Kibana prep commit: elastic/kibana@cc88067
Release Readiness
Figma: {link to Figma or issue}Migration guide: {steps or link, for breaking/visual changes or deprecations}Adoption plan (new features): {link to issue/doc or outline who will integrate this and where}QA instructions for reviewer
Test the PR preview vs production.
Verify:
EuiToolTip.Checklist before marking Ready for Review
QA: Tested docs changesbreaking changelabelReviewer checklist