Commit 1b59618
committed
Refactor ChartCanvas: replace getTooltipPosition/viewportTop with selectedItemTooltipOffset
Replace the getTooltipPosition callback and viewportTop props with a single pre-computed selectedItemTooltipOffset prop. The parent component (MarkerChartCanvas) now owns the full tooltip position calculation including the viewport bounds check, since it has direct access to all the layout data.
This simplifies ChartCanvas by removing internal details it didn't need to know about:
- _syncSelectedItemFromProp no longer calls a callback or checks viewport bounds;
- The three separate componentDidUpdate trigger conditions collapse into one;
- viewportTop is no longer leaked as a prop.
Also fix scroll-to-selected-marker on load when the viewport resizes after the initial layout (e.g. flex containers settling), by re-running _scrollSelectionIntoView when containerHeight changes.1 parent c4152c4 commit 1b59618
2 files changed
+80
-89
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
148 | 148 | | |
149 | 149 | | |
150 | 150 | | |
151 | | - | |
152 | | - | |
153 | 151 | | |
154 | 152 | | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
155 | 157 | | |
156 | 158 | | |
157 | 159 | | |
158 | | - | |
| 160 | + | |
159 | 161 | | |
160 | 162 | | |
161 | 163 | | |
| |||
997 | 999 | | |
998 | 1000 | | |
999 | 1001 | | |
1000 | | - | |
1001 | | - | |
1002 | | - | |
1003 | | - | |
1004 | | - | |
1005 | | - | |
| 1002 | + | |
| 1003 | + | |
| 1004 | + | |
1006 | 1005 | | |
1007 | | - | |
1008 | | - | |
1009 | | - | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
| 1009 | + | |
| 1010 | + | |
| 1011 | + | |
| 1012 | + | |
| 1013 | + | |
| 1014 | + | |
1010 | 1015 | | |
1011 | 1016 | | |
1012 | 1017 | | |
1013 | 1018 | | |
1014 | 1019 | | |
1015 | 1020 | | |
1016 | 1021 | | |
1017 | | - | |
| 1022 | + | |
| 1023 | + | |
| 1024 | + | |
| 1025 | + | |
| 1026 | + | |
| 1027 | + | |
| 1028 | + | |
1018 | 1029 | | |
1019 | 1030 | | |
1020 | 1031 | | |
1021 | 1032 | | |
1022 | 1033 | | |
1023 | 1034 | | |
1024 | | - | |
| 1035 | + | |
1025 | 1036 | | |
1026 | 1037 | | |
1027 | 1038 | | |
| |||
1033 | 1044 | | |
1034 | 1045 | | |
1035 | 1046 | | |
1036 | | - | |
| 1047 | + | |
1037 | 1048 | | |
1038 | 1049 | | |
1039 | 1050 | | |
1040 | 1051 | | |
1041 | 1052 | | |
1042 | 1053 | | |
1043 | | - | |
1044 | 1054 | | |
1045 | 1055 | | |
1046 | 1056 | | |
1047 | 1057 | | |
1048 | 1058 | | |
1049 | 1059 | | |
1050 | 1060 | | |
1051 | | - | |
1052 | 1061 | | |
1053 | 1062 | | |
1054 | 1063 | | |
| |||
1058 | 1067 | | |
1059 | 1068 | | |
1060 | 1069 | | |
1061 | | - | |
1062 | 1070 | | |
1063 | 1071 | | |
1064 | 1072 | | |
1065 | 1073 | | |
1066 | 1074 | | |
1067 | 1075 | | |
1068 | | - | |
1069 | | - | |
| 1076 | + | |
| 1077 | + | |
1070 | 1078 | | |
1071 | 1079 | | |
1072 | 1080 | | |
1073 | 1081 | | |
1074 | | - | |
1075 | 1082 | | |
1076 | 1083 | | |
1077 | | - | |
| 1084 | + | |
| 1085 | + | |
| 1086 | + | |
| 1087 | + | |
1078 | 1088 | | |
1079 | | - | |
| 1089 | + | |
1080 | 1090 | | |
1081 | 1091 | | |
1082 | | - | |
1083 | | - | |
| 1092 | + | |
1084 | 1093 | | |
1085 | 1094 | | |
1086 | 1095 | | |
| |||
1100 | 1109 | | |
1101 | 1110 | | |
1102 | 1111 | | |
1103 | | - | |
1104 | | - | |
| 1112 | + | |
1105 | 1113 | | |
1106 | 1114 | | |
1107 | 1115 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
| |||
367 | 367 | | |
368 | 368 | | |
369 | 369 | | |
370 | | - | |
371 | | - | |
372 | | - | |
373 | | - | |
374 | | - | |
| 370 | + | |
| 371 | + | |
375 | 372 | | |
376 | | - | |
| 373 | + | |
| 374 | + | |
377 | 375 | | |
378 | 376 | | |
379 | 377 | | |
380 | | - | |
381 | | - | |
382 | | - | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
383 | 381 | | |
384 | 382 | | |
385 | 383 | | |
386 | 384 | | |
387 | | - | |
388 | | - | |
389 | | - | |
390 | | - | |
391 | | - | |
392 | | - | |
393 | | - | |
394 | | - | |
395 | | - | |
| 385 | + | |
396 | 386 | | |
397 | 387 | | |
398 | 388 | | |
399 | | - | |
400 | | - | |
401 | | - | |
402 | | - | |
403 | | - | |
| 389 | + | |
404 | 390 | | |
405 | 391 | | |
406 | 392 | | |
407 | | - | |
408 | | - | |
409 | | - | |
| 393 | + | |
| 394 | + | |
410 | 395 | | |
411 | 396 | | |
412 | 397 | | |
413 | 398 | | |
414 | | - | |
| 399 | + | |
415 | 400 | | |
416 | 401 | | |
417 | 402 | | |
| |||
433 | 418 | | |
434 | 419 | | |
435 | 420 | | |
436 | | - | |
437 | | - | |
438 | | - | |
439 | | - | |
440 | | - | |
441 | | - | |
442 | | - | |
443 | | - | |
444 | | - | |
445 | | - | |
446 | | - | |
447 | | - | |
448 | | - | |
449 | | - | |
450 | | - | |
451 | | - | |
452 | | - | |
453 | | - | |
454 | | - | |
455 | | - | |
456 | | - | |
457 | | - | |
458 | | - | |
459 | | - | |
460 | | - | |
461 | | - | |
462 | | - | |
463 | | - | |
464 | | - | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
465 | 448 | | |
466 | 449 | | |
467 | 450 | | |
| |||
0 commit comments