[Logs UI] Fix inaccuracy when jumping to a faraway time target#40303
Merged
Zacqary merged 3 commits intoelastic:masterfrom Jul 9, 2019
Merged
[Logs UI] Fix inaccuracy when jumping to a faraway time target#40303Zacqary merged 3 commits intoelastic:masterfrom
Zacqary merged 3 commits intoelastic:masterfrom
Conversation
Contributor
|
Pinging @elastic/infra-logs-ui |
Contributor
💔 Build Failed |
Contributor
💚 Build Succeeded |
weltenwort
approved these changes
Jul 9, 2019
Member
weltenwort
left a comment
There was a problem hiding this comment.
This is great! Jumping around in the logs feels so much more accurate now. And extra credits for the explanation. The awesomeness of this fix is inversely proportional to its line count 😉
This was referenced Jul 9, 2019
Zacqary
added a commit
to Zacqary/kibana
that referenced
this pull request
Jul 9, 2019
Zacqary
added a commit
to Zacqary/kibana
that referenced
this pull request
Jul 9, 2019
Zacqary
added a commit
that referenced
this pull request
Jul 9, 2019
Zacqary
added a commit
that referenced
this pull request
Jul 9, 2019
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #39944
This fixes a bug that would cause changing the timestamp in the Logs UI to a timestamp outside the currently loaded range of logs to end up landing you on a very far off place than you actually clicked on. It would also sometimes send you to a very far off timestamp when initially loading the page with a specific timestamp in the URL.
After a lot of investigation, I was able to track the issue down to the
getVisibleChildrencall inVerticalScrollPanel'sgetSnapshotBeforeUpdate. When the panel is mounted, it's supposed to behave like so:childrento changeThis works fine. The problem is that when the component is first mounted, its
children,height, andwidthproperties aren't finalized yet for another animation frame or so. So what happened was:targettimestamp, with the intention of displaying thetargetin the very center of the log streamheightis 0, it doesn't actually scroll anywhere.AutoSizerfigures out how tall to make the component and updates it. Thechildrenalso get re-rendered because they depend on some data being computed fromWithColumnWidthsheightandchildrenchanges, and callsgetVisibleChildren. Because it hadn't actually scrolled down at all when itsheightwas 0, the visible children are actually the beginning of available dataThis created a very annoying situation where the user might:
This PR should prevent this from happening anymore.
Checklist
Use
strikethroughsto remove checklist items you don't feel are applicable to this PR.[ ] Any text added follows EUI's writing guidelines, uses sentence case text and includes i18n support[ ] Documentation was added for features that require explanation or tutorials[ ] Unit or functional tests were updated or added to match the most common scenarios[ ] This was checked for keyboard-only and screenreader accessibilityFor maintainers