-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Dashboard][Collapsable Panels] Fix bug on layout
update
#202049
[Dashboard][Collapsable Panels] Fix bug on layout
update
#202049
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This file should have been deleted in #200793, but I forgot to 🤦
Pinging @elastic/kibana-presentation (Team:Presentation) |
Starting backport for target branches: 8.x |
💛 Build succeeded, but was flaky
Failed CI StepsTest FailuresMetrics [docs]
cc @Heenawter |
…02049) ## Summary When the `layout` prop updates, we cannot assume that it is "safe" (i.e. we cannot assume it has no floating panels and/or colliding panels). Because of this, we need to resolve each grid row when this prop changes. When I added this in elastic#200793, I accidentally only **compacted** the rows, which did not account for possible collisions that the Dashboard's panel placement strategies do not account for. This PR fixes that by calling `resolveGridRow` (which compacts **and** detects collisions) instead of just `compactGridRow` (which, as the name suggests, only compacts the rows) **Before:** https://github.com/user-attachments/assets/bcea4efd-35fa-425d-ac04-41434ffaa810 **After:** https://github.com/user-attachments/assets/6cd205c6-d1d5-4a97-8d14-425c2a4bbeda ### Checklist - [x] The PR description includes the appropriate Release Notes section, and the correct `release_note:*` label is applied per the [guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) ### Identify risks There are no risks to this PR, since all work is contained in the `examples` plugin. (cherry picked from commit 57b8bda)
💚 All backports created successfully
Note: Successful backport PRs will be merged automatically after passing CI. Questions ?Please refer to the Backport tool documentation |
…pdate (#202049) (#202072) # Backport This will backport the following commits from `main` to `8.x`: - [[Dashboard][Collapsable Panels] Fix bug on `layout` update (#202049)](#202049) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Hannah Mudge","email":"[email protected]"},"sourceCommit":{"committedDate":"2024-11-27T21:12:15Z","message":"[Dashboard][Collapsable Panels] Fix bug on `layout` update (#202049)\n\n## Summary\r\n\r\nWhen the `layout` prop updates, we cannot assume that it is \"safe\" (i.e.\r\nwe cannot assume it has no floating panels and/or colliding panels).\r\nBecause of this, we need to resolve each grid row when this prop\r\nchanges. When I added this in\r\nhttps://github.com//pull/200793, I accidentally only\r\n**compacted** the rows, which did not account for possible collisions\r\nthat the Dashboard's panel placement strategies do not account for. This\r\nPR fixes that by calling `resolveGridRow` (which compacts **and**\r\ndetects collisions) instead of just `compactGridRow` (which, as the name\r\nsuggests, only compacts the rows)\r\n\r\n**Before:**\r\n\r\n\r\n\r\n\r\nhttps://github.com/user-attachments/assets/bcea4efd-35fa-425d-ac04-41434ffaa810\r\n\r\n\r\n**After:**\r\n\r\n\r\nhttps://github.com/user-attachments/assets/6cd205c6-d1d5-4a97-8d14-425c2a4bbeda\r\n\r\n\r\n\r\n### Checklist\r\n\r\n- [x] The PR description includes the appropriate Release Notes section,\r\nand the correct `release_note:*` label is applied per the\r\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\r\n\r\n### Identify risks\r\n\r\nThere are no risks to this PR, since all work is contained in the\r\n`examples` plugin.","sha":"57b8bdad3fb64d26b8fe3b0bf12c071857fff9e2","branchLabelMapping":{"^v9.0.0$":"main","^v8.18.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Feature:Dashboard","Team:Presentation","loe:small","release_note:skip","impact:high","v9.0.0","backport:prev-minor","Project:Collapsable Panels"],"title":"[Dashboard][Collapsable Panels] Fix bug on `layout` update","number":202049,"url":"https://github.com/elastic/kibana/pull/202049","mergeCommit":{"message":"[Dashboard][Collapsable Panels] Fix bug on `layout` update (#202049)\n\n## Summary\r\n\r\nWhen the `layout` prop updates, we cannot assume that it is \"safe\" (i.e.\r\nwe cannot assume it has no floating panels and/or colliding panels).\r\nBecause of this, we need to resolve each grid row when this prop\r\nchanges. When I added this in\r\nhttps://github.com//pull/200793, I accidentally only\r\n**compacted** the rows, which did not account for possible collisions\r\nthat the Dashboard's panel placement strategies do not account for. This\r\nPR fixes that by calling `resolveGridRow` (which compacts **and**\r\ndetects collisions) instead of just `compactGridRow` (which, as the name\r\nsuggests, only compacts the rows)\r\n\r\n**Before:**\r\n\r\n\r\n\r\n\r\nhttps://github.com/user-attachments/assets/bcea4efd-35fa-425d-ac04-41434ffaa810\r\n\r\n\r\n**After:**\r\n\r\n\r\nhttps://github.com/user-attachments/assets/6cd205c6-d1d5-4a97-8d14-425c2a4bbeda\r\n\r\n\r\n\r\n### Checklist\r\n\r\n- [x] The PR description includes the appropriate Release Notes section,\r\nand the correct `release_note:*` label is applied per the\r\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\r\n\r\n### Identify risks\r\n\r\nThere are no risks to this PR, since all work is contained in the\r\n`examples` plugin.","sha":"57b8bdad3fb64d26b8fe3b0bf12c071857fff9e2"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/202049","number":202049,"mergeCommit":{"message":"[Dashboard][Collapsable Panels] Fix bug on `layout` update (#202049)\n\n## Summary\r\n\r\nWhen the `layout` prop updates, we cannot assume that it is \"safe\" (i.e.\r\nwe cannot assume it has no floating panels and/or colliding panels).\r\nBecause of this, we need to resolve each grid row when this prop\r\nchanges. When I added this in\r\nhttps://github.com//pull/200793, I accidentally only\r\n**compacted** the rows, which did not account for possible collisions\r\nthat the Dashboard's panel placement strategies do not account for. This\r\nPR fixes that by calling `resolveGridRow` (which compacts **and**\r\ndetects collisions) instead of just `compactGridRow` (which, as the name\r\nsuggests, only compacts the rows)\r\n\r\n**Before:**\r\n\r\n\r\n\r\n\r\nhttps://github.com/user-attachments/assets/bcea4efd-35fa-425d-ac04-41434ffaa810\r\n\r\n\r\n**After:**\r\n\r\n\r\nhttps://github.com/user-attachments/assets/6cd205c6-d1d5-4a97-8d14-425c2a4bbeda\r\n\r\n\r\n\r\n### Checklist\r\n\r\n- [x] The PR description includes the appropriate Release Notes section,\r\nand the correct `release_note:*` label is applied per the\r\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\r\n\r\n### Identify risks\r\n\r\nThere are no risks to this PR, since all work is contained in the\r\n`examples` plugin.","sha":"57b8bdad3fb64d26b8fe3b0bf12c071857fff9e2"}}]}] BACKPORT--> Co-authored-by: Hannah Mudge <[email protected]>
…02049) ## Summary When the `layout` prop updates, we cannot assume that it is "safe" (i.e. we cannot assume it has no floating panels and/or colliding panels). Because of this, we need to resolve each grid row when this prop changes. When I added this in elastic#200793, I accidentally only **compacted** the rows, which did not account for possible collisions that the Dashboard's panel placement strategies do not account for. This PR fixes that by calling `resolveGridRow` (which compacts **and** detects collisions) instead of just `compactGridRow` (which, as the name suggests, only compacts the rows) **Before:** https://github.com/user-attachments/assets/bcea4efd-35fa-425d-ac04-41434ffaa810 **After:** https://github.com/user-attachments/assets/6cd205c6-d1d5-4a97-8d14-425c2a4bbeda ### Checklist - [x] The PR description includes the appropriate Release Notes section, and the correct `release_note:*` label is applied per the [guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) ### Identify risks There are no risks to this PR, since all work is contained in the `examples` plugin.
Summary
When the
layout
prop updates, we cannot assume that it is "safe" (i.e. we cannot assume it has no floating panels and/or colliding panels). Because of this, we need to resolve each grid row when this prop changes. When I added this in #200793, I accidentally only compacted the rows, which did not account for possible collisions that the Dashboard's panel placement strategies do not account for. This PR fixes that by callingresolveGridRow
(which compacts and detects collisions) instead of justcompactGridRow
(which, as the name suggests, only compacts the rows)Before:
Screen.Recording.2024-11-27.at.11.40.23.AM.mov
After:
Screen.Recording.2024-11-27.at.11.41.55.AM.mov
Checklist
release_note:*
label is applied per the guidelinesIdentify risks
There are no risks to this PR, since all work is contained in the
examples
plugin.