perf: Widget re-rendering refactor#14485
Conversation
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
|
/ok-to-test sha=4d9cec6 |
|
Unable to find test scripts. Please add necessary tests to the PR. |
|
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/2487274596. |
|
/ok-to-test sha=8027618 |
|
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/2487468931. |
|
/ok-to-test sha=28fb4fc |
|
@rahulramesha Sounds good for now. In general, using Here, this means that instead of calling |
|
@riodeuno yes, but in this particular scenario, where we consume the state in only one component per page for the CanvasStructure that contains all the values, diffing logic to update specific paths would take up more time or be equal to the deepEqual. But Ideally, in the future, when we decide to further replace children with just their IDs instead of whole tree structure of children, That would be a much better solution without deepEqual. But currently to do that will require more cleanup and there are more unknowns with respect to how few widgets work. |
|
/ok-to-test sha=60a9e24 |
|
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/2839497897. |
|
UI Performance test run logs and artifacts: https://github.com/appsmithorg/appsmith/actions/runs/2839497897. Click to view performance test results
|
|
/ok-to-test sha=e5d0eb7 |
|
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/2867088601. |
|
@rahulramesha there is a pending change request, Can you request the author for an approval or make the change if required. @vivekverma2312 @laveena-en can you please give us an update on what is happening here with the QA regression. |
|
/ok-to-test sha=ddd5477 |
|
@riodeuno, looks like there is change request still on the PR, since the review comments were all answered, could you please give a final review on the PR. |
|
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/2873656744. |
|
@somangshu Testing is in progress. 7 widgets are pending, will be done by today EOD. |
|
Awesome. @rahulramesha we can merge this as soon as we have the signoff on the rest |
|
@rahulramesha Completed regression on widgets and working fine. |
SatishGandham
left a comment
There was a problem hiding this comment.
Looks good.
Congratulations @rahulramesha 🥳🥳🥳
Description
This PR has core logic changes on how widgets are rendered. Instead of the entire DSL flowing through the flow of creating canvases and widgets, Only a structure similar to DSL is used to do the Same. This Structure only contains a bare bones structure, and the actual widget properties are selected directly from the store for each individual widgets.
Changes also includes,
commentModeSelectorwhich has expensive logic inside the selector itself that ran on every state change with auseCommentModethat only performs the calculation on when dependencies are changed.Fixes #12938
Type of change
How Has This Been Tested?
Manual UI and all existing tests should pass.
Checklist: