feat: Support row virtualization using react-window in table widget
Fixes #16567
Type of change
- New feature (non-breaking change which adds functionality)
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions, so we can reproduce. Please also list any relevant details for your test configuration.
- Test A
- Test B
Checklist:
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my feature works
- [x] New and existing unit tests pass locally with my changes
The latest updates on your projects. Learn more about Vercel for Git ↗︎
| Name | Status | Preview | Updated |
|---|---|---|---|
| appsmith | ✅ Ready (Inspect) | Visit Preview | Oct 4, 2022 at 10:13AM (UTC) |
Unable to find test scripts. Please add necessary tests to the PR.
Unable to find test scripts. Please add necessary tests to the PR.
Unable to find test scripts. Please add necessary tests to the PR.
Unable to find test scripts. Please add necessary tests to the PR.
Unable to find test scripts. Please add necessary tests to the PR.
Unable to find test scripts. Please add necessary tests to the PR.
Unable to find test scripts. Please add necessary tests to the PR.
Unable to find test scripts. Please add necessary tests to the PR.
Unable to find test scripts. Please add necessary tests to the PR.
Tested and verified for: Row Virtualization Regression on the table widget
Unable to find test scripts. Please add necessary tests to the PR.
This PR has not seen activitiy for a while. It will be closed in 7 days unless further activity is detected.
/ok-to-test sha=6914918
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/3171898428.
Workflow: Appsmith External Integration Test Workflow.
Commit: 6914918.
PR: 16872.
UI Performance test run logs and artifacts: https://github.com/appsmithorg/appsmith/actions/runs/3171898428.
Commit: ``.
Results: Click to view performance test results
| Run 1 (ms) | Run 2 (ms) | Run 3 (ms) | Run 4 (ms) | Run 5 (ms) | Minimum (ms) | Median (ms) | Mean (ms) | Range (%) | SD.Sample (%) | SD.Population (%) | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SELECT_CATEGORY | |||||||||||
| scripting | 372.77 | 346.89 | 366.2 | 423.05 | 350.82 | 346.89 | 366.2 | 371.95 | 20.48 | 8.20 | 7.33 |
| painting | 3.45 | 6.41 | 6.46 | 5.43 | 3.19 | 3.19 | 5.43 | 4.99 | 65.53 | 31.66 | 28.26 |
| rendering | 103.9 | 105.86 | 117.46 | 110.57 | 109.41 | 103.9 | 109.41 | 109.44 | 12.39 | 4.77 | 4.27 |
| BIND_TABLE_DATA | |||||||||||
| scripting | 1102.03 | 1120.54 | 1065.78 | 1209.04 | 1210.4 | 1065.78 | 1120.54 | 1141.56 | 12.67 | 5.72 | 5.11 |
| painting | 19.9 | 19.61 | 16.46 | 24.57 | 30.83 | 16.46 | 19.9 | 22.27 | 64.53 | 25.10 | 22.45 |
| rendering | 842.53 | 807.27 | 809.22 | 960.73 | 963.67 | 807.27 | 842.53 | 876.68 | 17.84 | 9.05 | 8.09 |
| CLICK_ON_TABLE_ROW | |||||||||||
| scripting | 864.64 | 851.08 | 927.56 | 1093.63 | 1041.98 | 851.08 | 927.56 | 955.78 | 25.38 | 11.28 | 10.09 |
| painting | 10.03 | 9.32 | 10.74 | 19.83 | 10.64 | 9.32 | 10.64 | 12.11 | 86.79 | 35.92 | 32.12 |
| rendering | 294.74 | 296.96 | 316.19 | 342.1 | 330.69 | 294.74 | 316.19 | 316.14 | 14.98 | 6.54 | 5.85 |
| UPDATE_POST_TITLE | |||||||||||
| scripting | 1505.31 | 1349.11 | 1794.04 | 1744.24 | 2095.02 | 1349.11 | 1744.24 | 1697.54 | 43.94 | 16.86 | 15.08 |
| painting | 25.58 | 18.97 | 16.59 | 18.24 | 24.92 | 16.59 | 18.97 | 20.86 | 43.10 | 19.70 | 17.59 |
| rendering | 633.16 | 609.91 | 616.83 | 666.07 | 739.52 | 609.91 | 633.16 | 653.1 | 19.85 | 8.11 | 7.25 |
| OPEN_MODAL | |||||||||||
| scripting | 467.28 | 462.9 | 456.28 | 557.52 | 610.8 | 456.28 | 467.28 | 510.96 | 30.24 | 13.61 | 12.17 |
| painting | 11.15 | 14.46 | 7.95 | 22 | 27.51 | 7.95 | 14.46 | 16.61 | 117.76 | 48.28 | 43.17 |
| rendering | 1173.99 | 1201.58 | 1218.68 | 1318.41 | 1429.82 | 1173.99 | 1218.68 | 1268.5 | 20.17 | 8.31 | 7.43 |
| CLOSE_MODAL | |||||||||||
| scripting | 230.69 | 253.13 | 660.51 | 804.46 | 270 | 230.69 | 270 | 443.76 | 129.30 | 60.57 | 54.18 |
| painting | 7.87 | 5.15 | 12.67 | 5.72 | 4.53 | 4.53 | 5.72 | 7.19 | 113.21 | 46.04 | 41.17 |
| rendering | 927.82 | 891.6 | 889.14 | 1097.63 | 1023.95 | 889.14 | 927.82 | 966.03 | 21.58 | 9.49 | 8.48 |
| SELECT_WIDGET_MENU_OPEN | |||||||||||
| scripting | 931.46 | 969.27 | 1043.74 | 1033.64 | 1059.64 | 931.46 | 1033.64 | 1007.55 | 12.72 | 5.43 | 4.85 |
| painting | 4.66 | 5.54 | 7.72 | 13.08 | 7.73 | 4.66 | 7.72 | 7.75 | 108.65 | 42.19 | 37.81 |
| rendering | 641.38 | 681.05 | 718.05 | 702.7 | 747.14 | 641.38 | 702.7 | 698.06 | 15.15 | 5.70 | 5.10 |
| SELECT_WIDGET_SELECT_OPTION | |||||||||||
| scripting | 160.81 | 188.18 | 175.6 | 186.67 | 182.32 | 160.81 | 182.32 | 178.72 | 15.31 | 6.23 | 5.57 |
| painting | 6.23 | 4.9 | 2.81 | 14.84 | 4.21 | 2.81 | 4.9 | 6.6 | 182.27 | 72.27 | 64.70 |
| rendering | 319.65 | 364 | 324.97 | 325.51 | 328.73 | 319.65 | 325.51 | 332.57 | 13.34 | 5.37 | 4.81 |
/ok-to-test sha=d2b4338
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/3173856088.
Workflow: Appsmith External Integration Test Workflow.
Commit: d2b4338.
PR: 16872.
Unable to find test scripts. Please add necessary tests to the PR.
/ok-to-test sha=0706d29
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/3179638284.
Workflow: Appsmith External Integration Test Workflow.
Commit: 0706d29.
PR: 16872.
UI Performance test run logs and artifacts: https://github.com/appsmithorg/appsmith/actions/runs/3179638284.
Commit: ``.
Results: Click to view performance test results
| Run 1 (ms) | Run 2 (ms) | Run 3 (ms) | Run 4 (ms) | Run 5 (ms) | Minimum (ms) | Median (ms) | Mean (ms) | Range (%) | SD.Sample (%) | SD.Population (%) | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SELECT_WIDGET_MENU_OPEN | |||||||||||
| scripting | 951.14 | 1063.1 | 1037.18 | 1022.01 | 983.33 | 951.14 | 1022.01 | 1011.35 | 11.07 | 4.39 | 3.92 |
| painting | 10.83 | 10.52 | 7.26 | 17.51 | 7.48 | 7.26 | 10.52 | 10.72 | 95.62 | 38.62 | 34.51 |
| rendering | 647.29 | 747.57 | 735.37 | 702.03 | 711.7 | 647.29 | 711.7 | 708.79 | 14.15 | 5.49 | 4.91 |
| SELECT_WIDGET_SELECT_OPTION | |||||||||||
| scripting | 162.19 | 188.25 | 161.65 | 169.68 | 162.87 | 161.65 | 162.87 | 168.93 | 15.75 | 6.68 | 5.97 |
| painting | 3.31 | 5.93 | 5.97 | 4.36 | 7 | 3.31 | 5.93 | 5.31 | 69.49 | 27.50 | 24.67 |
| rendering | 319.05 | 340.77 | 314.1 | 346.97 | 304.04 | 304.04 | 319.05 | 324.99 | 13.21 | 5.60 | 5.01 |
| SELECT_CATEGORY | |||||||||||
| scripting | 364.3 | 376.87 | 349.78 | 371.28 | 342.15 | 342.15 | 364.3 | 360.88 | 9.62 | 4.04 | 3.61 |
| painting | 6.23 | 7.49 | 6.99 | 5.01 | 5.92 | 5.01 | 6.23 | 6.33 | 39.18 | 15.17 | 13.59 |
| rendering | 106.07 | 110.66 | 106.77 | 106.28 | 108.48 | 106.07 | 106.77 | 107.65 | 4.26 | 1.79 | 1.61 |
| BIND_TABLE_DATA | |||||||||||
| scripting | 1121.95 | 1159.85 | 1144.87 | 1008.98 | 1100.43 | 1008.98 | 1121.95 | 1107.22 | 13.63 | 5.36 | 4.80 |
| painting | 20.45 | 12.7 | 22.89 | 21.37 | 16.35 | 12.7 | 20.45 | 18.75 | 54.35 | 22.19 | 19.84 |
| rendering | 842.69 | 860.65 | 866.31 | 885.26 | 790.24 | 790.24 | 860.65 | 849.03 | 11.19 | 4.26 | 3.81 |
| CLICK_ON_TABLE_ROW | |||||||||||
| scripting | 939.42 | 1009.05 | 915.54 | 988.67 | 789.94 | 789.94 | 939.42 | 928.52 | 23.60 | 9.26 | 8.29 |
| painting | 13.77 | 16.24 | 13.67 | 9.76 | 12.55 | 9.76 | 13.67 | 13.2 | 49.09 | 17.80 | 15.91 |
| rendering | 305.94 | 331.1 | 313.33 | 315.33 | 294.05 | 294.05 | 313.33 | 311.95 | 11.88 | 4.35 | 3.89 |
| UPDATE_POST_TITLE | |||||||||||
| scripting | 1502.96 | 1499.56 | 1440.78 | 1511.19 | 1455.25 | 1440.78 | 1499.56 | 1481.95 | 4.75 | 2.14 | 1.91 |
| painting | 14.29 | 17.26 | 19.25 | 14.92 | 16.03 | 14.29 | 16.03 | 16.35 | 30.34 | 12.11 | 10.83 |
| rendering | 622.53 | 664.78 | 618.98 | 641.18 | 608.89 | 608.89 | 622.53 | 631.27 | 8.85 | 3.50 | 3.13 |
| OPEN_MODAL | |||||||||||
| scripting | 491.73 | 489.43 | 947.95 | 438.89 | 430.78 | 430.78 | 489.43 | 559.76 | 92.39 | 39.09 | 34.96 |
| painting | 25.13 | 10.17 | 13.08 | 15.27 | 13.31 | 10.17 | 13.31 | 15.39 | 97.21 | 37.30 | 33.33 |
| rendering | 1241.29 | 1228.25 | 1211.41 | 1162.63 | 1189.65 | 1162.63 | 1211.41 | 1206.65 | 6.52 | 2.59 | 2.32 |
| CLOSE_MODAL | |||||||||||
| scripting | 223.67 | 217.9 | 219.01 | 202.94 | 178.64 | 178.64 | 217.9 | 208.43 | 21.60 | 8.82 | 7.89 |
| painting | 5.09 | 5.63 | 7.76 | 7.92 | 6.71 | 5.09 | 6.71 | 6.62 | 42.75 | 19.03 | 16.92 |
| rendering | 933.12 | 940.96 | 912.14 | 882.33 | 895.2 | 882.33 | 912.14 | 912.75 | 6.42 | 2.71 | 2.42 |
/ok-to-test sha=d8630a0
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/3181258800.
Workflow: Appsmith External Integration Test Workflow.
Commit: d8630a0.
PR: 16872.
UI Performance test run logs and artifacts: https://github.com/appsmithorg/appsmith/actions/runs/3181258800.
Commit: ``.
Results: Click to view performance test results
| Run 1 (ms) | Run 2 (ms) | Run 3 (ms) | Run 4 (ms) | Run 5 (ms) | Minimum (ms) | Median (ms) | Mean (ms) | Range (%) | SD.Sample (%) | SD.Population (%) | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SELECT_CATEGORY | |||||||||||
| scripting | 345.42 | 386.38 | 367.61 | 416.89 | 467.15 | 345.42 | 386.38 | 396.69 | 30.69 | 11.93 | 10.67 |
| painting | 3.07 | 3.46 | 7.01 | 7.31 | 4.38 | 3.07 | 4.38 | 5.05 | 83.96 | 39.41 | 35.25 |
| rendering | 106.81 | 107.88 | 106.27 | 114.96 | 122.73 | 106.27 | 107.88 | 111.73 | 14.73 | 6.34 | 5.67 |
| BIND_TABLE_DATA | |||||||||||
| scripting | 1040.55 | 1081.55 | 1155.43 | 1818.76 | 1331.36 | 1040.55 | 1155.43 | 1285.53 | 60.54 | 24.75 | 22.14 |
| painting | 18.89 | 18.19 | 25.46 | 29.44 | 39.34 | 18.19 | 25.46 | 26.26 | 80.54 | 33.05 | 29.55 |
| rendering | 802.82 | 817.76 | 890.56 | 679.11 | 1007.01 | 679.11 | 817.76 | 839.45 | 39.06 | 14.37 | 12.85 |
| CLICK_ON_TABLE_ROW | |||||||||||
| scripting | 843.33 | 904.05 | 956.01 | 1294.33 | 1147.45 | 843.33 | 956.01 | 1029.03 | 43.83 | 18.17 | 16.25 |
| painting | 12.52 | 8.76 | 9.55 | 15.75 | 12.51 | 8.76 | 12.51 | 11.82 | 59.14 | 23.52 | 21.07 |
| rendering | 290.64 | 322.06 | 332.66 | 372.01 | 369.17 | 290.64 | 332.66 | 337.31 | 24.12 | 10.11 | 9.04 |
| UPDATE_POST_TITLE | |||||||||||
| scripting | 922.67 | 868.57 | 947.74 | 1263.82 | 1300.75 | 868.57 | 947.74 | 1060.71 | 40.74 | 19.30 | 17.26 |
| painting | 8.29 | 9.35 | 9.62 | 14.13 | 13.03 | 8.29 | 9.62 | 10.88 | 53.68 | 23.35 | 20.86 |
| rendering | 567.76 | 584.51 | 607.98 | 706.66 | 765.36 | 567.76 | 607.98 | 646.45 | 30.57 | 13.23 | 11.84 |
| OPEN_MODAL | |||||||||||
| scripting | 502.91 | 480.77 | 492.09 | 598.59 | 540.24 | 480.77 | 502.91 | 522.92 | 22.53 | 9.15 | 8.18 |
| painting | 15.59 | 10.66 | 14.07 | 22.59 | 24.58 | 10.66 | 15.59 | 17.5 | 79.54 | 33.60 | 30.06 |
| rendering | 1190.08 | 1209.06 | 1274.01 | 1373.52 | 1297.3 | 1190.08 | 1274.01 | 1268.79 | 14.46 | 5.79 | 5.18 |
| CLOSE_MODAL | |||||||||||
| scripting | 200.26 | 233.23 | 230.31 | 289.3 | 310.34 | 200.26 | 233.23 | 252.69 | 43.56 | 18.02 | 16.11 |
| painting | 4.75 | 11.37 | 5.55 | 7.06 | 22.46 | 4.75 | 7.06 | 10.24 | 172.95 | 71.19 | 63.67 |
| rendering | 866.57 | 889.26 | 964.8 | 1016.71 | 1100.71 | 866.57 | 964.8 | 967.61 | 24.20 | 9.87 | 8.83 |
| SELECT_WIDGET_MENU_OPEN | |||||||||||
| scripting | 312.56 | 281.41 | 311.44 | 391.6 | 341.47 | 281.41 | 312.56 | 327.7 | 33.63 | 12.68 | 11.34 |
| painting | 8.45 | 8.25 | 12.24 | 8.88 | 18.87 | 8.25 | 8.88 | 11.34 | 93.65 | 39.77 | 35.63 |
| rendering | 698.47 | 639.47 | 688.88 | 773.26 | 698.94 | 639.47 | 698.47 | 699.8 | 19.12 | 6.84 | 6.12 |
| SELECT_WIDGET_SELECT_OPTION | |||||||||||
| scripting | 165.47 | 194.26 | 151.6 | 180.6 | 205.48 | 151.6 | 180.6 | 179.48 | 30.02 | 12.05 | 10.78 |
| painting | 3.79 | 4.95 | 3.1 | 2.91 | 5.99 | 2.91 | 3.79 | 4.15 | 74.22 | 31.33 | 28.19 |
| rendering | 304.17 | 321.22 | 311.48 | 323.98 | 319.45 | 304.17 | 319.45 | 316.06 | 6.27 | 2.57 | 2.30 |
Tested and verified:
-Performance testing with large number of records (1000 records, 40 cols) -Regression on table widget. -Functionality in view and edit mode.
/ok-to-test sha=d8630a0
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/3194598201.
Workflow: Appsmith External Integration Test Workflow.
Commit: d8630a0.
PR: 16872.
UI Performance test run logs and artifacts: https://github.com/appsmithorg/appsmith/actions/runs/3194598201.
Commit: ``.
Results: Click to view performance test results
| Run 1 (ms) | Run 2 (ms) | Run 3 (ms) | Run 4 (ms) | Run 5 (ms) | Minimum (ms) | Median (ms) | Mean (ms) | Range (%) | SD.Sample (%) | SD.Population (%) | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SELECT_CATEGORY | |||||||||||
| scripting | 329 | 369.74 | 357.74 | 346.77 | 328.53 | 328.53 | 346.77 | 346.36 | 11.90 | 5.20 | 4.65 |
| painting | 6.83 | 9.2 | 5.34 | 4.48 | 3.86 | 3.86 | 5.34 | 5.94 | 89.90 | 36.03 | 32.15 |
| rendering | 106.48 | 111 | 104.33 | 106.49 | 112.51 | 104.33 | 106.49 | 108.16 | 7.56 | 3.18 | 2.84 |
| BIND_TABLE_DATA | |||||||||||
| scripting | 1028.3 | 1069.25 | 1119.82 | 1119.48 | 1069.25 | 1028.3 | 1069.25 | 1081.22 | 8.46 | 3.59 | 3.21 |
| painting | 15.51 | 27.78 | 28.98 | 9.48 | 17.91 | 9.48 | 17.91 | 19.93 | 97.84 | 41.70 | 37.28 |
| rendering | 796.75 | 805.39 | 839.79 | 802.5 | 779.18 | 779.18 | 802.5 | 804.72 | 7.53 | 2.75 | 2.45 |
| CLICK_ON_TABLE_ROW | |||||||||||
| scripting | 839.93 | 875.36 | 889.03 | 887.31 | 885.47 | 839.93 | 885.47 | 875.42 | 5.61 | 2.35 | 2.10 |
| painting | 9.12 | 8.81 | 8.17 | 14.78 | 12.01 | 8.17 | 9.12 | 10.58 | 62.48 | 26.18 | 23.44 |
| rendering | 291.85 | 304.82 | 304.21 | 295.43 | 304.45 | 291.85 | 304.21 | 300.15 | 4.32 | 2.03 | 1.81 |
| UPDATE_POST_TITLE | |||||||||||
| scripting | 915.6 | 853.95 | 865.19 | 864.91 | 819.62 | 819.62 | 864.91 | 863.85 | 11.11 | 3.98 | 3.56 |
| painting | 13.74 | 7.61 | 13.65 | 11.95 | 10.6 | 7.61 | 11.95 | 11.51 | 53.26 | 22.07 | 19.72 |
| rendering | 583.76 | 579.66 | 589.76 | 622.93 | 574.03 | 574.03 | 583.76 | 590.03 | 8.29 | 3.27 | 2.92 |
| OPEN_MODAL | |||||||||||
| scripting | 473.71 | 487.18 | 468.49 | 460.38 | 439.9 | 439.9 | 468.49 | 465.93 | 10.15 | 3.76 | 3.36 |
| painting | 11.4 | 14.74 | 11.96 | 8.56 | 17.43 | 8.56 | 11.96 | 12.82 | 69.19 | 26.44 | 23.63 |
| rendering | 1193.87 | 1168.62 | 1178.64 | 1176.42 | 1146.21 | 1146.21 | 1176.42 | 1172.75 | 4.06 | 1.49 | 1.33 |
| CLOSE_MODAL | |||||||||||
| scripting | 210.54 | 207.68 | 243.83 | 188.93 | 251.19 | 188.93 | 210.54 | 220.43 | 28.24 | 11.89 | 10.63 |
| painting | 4.48 | 6.36 | 4.55 | 9.34 | 5.18 | 4.48 | 5.18 | 5.98 | 81.27 | 33.78 | 30.27 |
| rendering | 914.18 | 880.76 | 891.24 | 893.62 | 970.46 | 880.76 | 893.62 | 910.05 | 9.86 | 3.94 | 3.53 |
| SELECT_WIDGET_MENU_OPEN | |||||||||||
| scripting | 293.91 | 287.52 | 299.04 | 284.26 | 309.99 | 284.26 | 293.91 | 294.94 | 8.72 | 3.45 | 3.08 |
| painting | 6.05 | 5.58 | 7.92 | 7.33 | 10.03 | 5.58 | 7.33 | 7.38 | 60.30 | 23.85 | 21.27 |
| rendering | 629.72 | 653.3 | 669.46 | 644.78 | 652.16 | 629.72 | 652.16 | 649.88 | 6.11 | 2.22 | 1.99 |
| SELECT_WIDGET_SELECT_OPTION | |||||||||||
| scripting | 158.24 | 155.12 | 170.41 | 150.41 | 147.65 | 147.65 | 155.12 | 156.37 | 14.56 | 5.67 | 5.06 |
| painting | 1.99 | 2.54 | 12.09 | 4.99 | 2.33 | 1.99 | 2.54 | 4.79 | 210.86 | 88.73 | 79.33 |
| rendering | 303.88 | 305.62 | 328.98 | 303.19 | 302.45 | 302.45 | 303.88 | 308.82 | 8.59 | 3.67 | 3.28 |