You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains 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
Moves the dependency out of the beta range, and brings React 19 support which is why this is happening now.
@binoy14 There were some minor crashes in the array input after upgrading - the observeElementOffset seems to need a second argument, isScrolling. I assumed that since we were calling this from a scroll handler it would be safe to set this to always be true, but we're also calling it once on "mount", at which point I am giving it false. Additionally, the virtual items seems to start at an empty array now, which crashed when attempting to use the first element in the styles. Can you see that things works as expected? I did some testing and to my eyes it appears to work fine.
@robinpyon I am requesting a review from you since you have been involved in multiple components that utilize this library: scheduled publishing and CommandList being the two I can find. CommandList is being used quite a number of places, and from what I can tell things seems to work fine - but would really appreciate a quick run through to double check.
What to review
That things still work as expected. Surfaces affected are (at least):
"New document" list (scrollable list of schema types)
Scheduled publishing tool (list of schedules)
Array of objects input
Comments/tasks mentions list
Search (add filter)
Search (recent searches)
Search (results)
Document list pane
List panes
Document timeline (history)
Testing
No new tests were added - relying on existing tests and manual review.
efps — editor "frames per second". The number of updates assumed to be possible within a second.
Derived from input latency. efps = 1000 / input_latency
Detailed information
🏠 Reference result
The performance result of sanity@latest
Benchmark
latency
p75
p90
p99
blocking time
test duration
article (title)
41ms
43ms
48ms
193ms
165ms
11.8s
article (body)
16ms
20ms
27ms
212ms
261ms
5.7s
article (string inside object)
43ms
45ms
55ms
125ms
206ms
7.3s
article (string inside array)
46ms
47ms
53ms
175ms
154ms
7.5s
recipe (name)
20ms
22ms
24ms
43ms
0ms
7.1s
recipe (description)
17ms
19ms
22ms
35ms
0ms
4.5s
recipe (instructions)
5ms
6ms
9ms
18ms
0ms
3.0s
synthetic (title)
50ms
52ms
57ms
144ms
149ms
12.7s
synthetic (string inside object)
48ms
52ms
54ms
296ms
492ms
8.4s
🧪 Experiment result
The performance result of this branch
Benchmark
latency
p75
p90
p99
blocking time
test duration
article (title)
47ms
50ms
84ms
136ms
247ms
14.0s
article (body)
16ms
18ms
25ms
68ms
48ms
5.2s
article (string inside object)
45ms
47ms
60ms
190ms
192ms
7.3s
article (string inside array)
47ms
49ms
53ms
310ms
287ms
7.9s
recipe (name)
20ms
20ms
21ms
41ms
0ms
7.3s
recipe (description)
17ms
19ms
19ms
40ms
0ms
4.5s
recipe (instructions)
5ms
7ms
8ms
20ms
0ms
3.2s
synthetic (title)
51ms
52ms
55ms
111ms
203ms
12.9s
synthetic (string inside object)
51ms
54ms
67ms
477ms
824ms
8.3s
📚 Glossary
column definitions
benchmark — the name of the test, e.g. "article", followed by the label of the field being measured, e.g. "(title)".
latency — the time between when a key was pressed and when it was rendered. derived from a set of samples. the median (p50) is shown to show the most common latency.
p75 — the 75th percentile of the input latency in the test run. 75% of the sampled inputs in this benchmark were processed faster than this value. this provides insight into the upper range of typical performance.
p90 — the 90th percentile of the input latency in the test run. 90% of the sampled inputs were faster than this. this metric helps identify slower interactions that occurred less frequently during the benchmark.
p99 — the 99th percentile of the input latency in the test run. only 1% of sampled inputs were slower than this. this represents the worst-case scenarios encountered during the benchmark, useful for identifying potential performance outliers.
blocking time — the total time during which the main thread was blocked, preventing user input and UI updates. this metric helps identify performance bottlenecks that may cause the interface to feel unresponsive.
test duration — how long the test run took to complete.
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.
Description
Moves the dependency out of the beta range, and brings React 19 support which is why this is happening now.
@binoy14 There were some minor crashes in the array input after upgrading - the
observeElementOffset
seems to need a second argument,isScrolling
. I assumed that since we were calling this from a scroll handler it would be safe to set this to always betrue
, but we're also calling it once on "mount", at which point I am giving itfalse
. Additionally, the virtual items seems to start at an empty array now, which crashed when attempting to use the first element in the styles. Can you see that things works as expected? I did some testing and to my eyes it appears to work fine.@robinpyon I am requesting a review from you since you have been involved in multiple components that utilize this library: scheduled publishing and CommandList being the two I can find. CommandList is being used quite a number of places, and from what I can tell things seems to work fine - but would really appreciate a quick run through to double check.
What to review
That things still work as expected. Surfaces affected are (at least):
Testing
No new tests were added - relying on existing tests and manual review.
Notes for release
None