PromucFlow_constructor/app/client/src/sagas
Vemparala Surya Vamsi c8943509a0
chore: improved performance of getUnevaluatedDataTree (#37189)
## Description
Refactored getUnevaluatedDataTree selector to be more resilient to state
changes thereby reselect cache gets triggered less often. Identified an
action which was firing the selectors unnecessarily, fixed that as well.
For our customer during page load it used to take about 800ms
cumulatively, it has now dropped to about 160ms by about 80%. This is
also an impactful selector which cumulatively takes about 50,000 seconds
for all our client systems per week, hence we focussed our optimisation
here

## Automation

/ok-to-test tags="@tag.All"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11658078700>
> Commit: 557172d47b2232800355e1dc78c921d9cb56c725
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11658078700&attempt=2"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Mon, 04 Nov 2024 06:00:06 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Summary by CodeRabbit

- **Bug Fixes**
- Improved state management by preventing unnecessary updates to loading
entities, enhancing app performance.

- **Refactor**
- Updated the `loadingEntitiesReducer` to include an equality check for
loading entities before state updates.
- Enhanced date handling capabilities in the DatePicker widget tests and
commands.
- Restructured the `DataTreeFactory` class for improved modularity and
clarity in data tree creation.
- Simplified selector functions for better readability and
maintainability in data tree selectors.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-11-04 16:03:03 +05:30
..
__tests__ chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
ActionExecution chore: Distributed tracing for client (#37101) 2024-10-29 11:25:43 +05:30
autoHeightSagas chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
BuildingBlockSagas chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
CanvasSagas chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
PartialImportExportSagas chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
PasteWidgetUtils chore: delete unused code (#36461) 2024-09-23 13:52:00 +03:00
WebsocketSagas chore: delete unused code (#36461) 2024-09-23 13:52:00 +03:00
ActionSagas.ts chore: add new ADD_ACTION blueprint operation type (#37078) 2024-10-25 12:00:34 +03:00
AnalyticsSaga.ts fix: change appsmith alias (#35349) 2024-08-06 17:52:22 +03:00
ApiPaneSagas.ts fix: API Body format focus retention (#37150) 2024-11-01 11:24:49 +05:30
AppThemingSaga.tsx chore: Refactor API (#36412) 2024-09-25 16:29:21 +05:30
AutoLayoutUpdateSagas.tsx chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
BatchSagas.tsx chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
CommunityTemplatesSagas.tsx chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
CurlImportSagas.ts chore: Migrate sub components into Plugin Action Editor (#36844) 2024-10-16 18:29:10 +05:30
DatasourcesSagas.ts chore: add new ADD_ACTION blueprint operation type (#37078) 2024-10-25 12:00:34 +03:00
DebuggerSagas.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
editorContextSagas.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
ErrorSagas.tsx chore: Refactor API (#36412) 2024-09-25 16:29:21 +05:30
EvalErrorHandler.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
EvaluationsSaga.test.ts chore: cache dependencyMap computation on client (#35965) 2024-10-15 21:05:39 +05:30
EvaluationsSaga.ts chore: improved performance of getUnevaluatedDataTree (#37189) 2024-11-04 16:03:03 +05:30
EvaluationsSagaUtils.test.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
EvaluationsSagaUtils.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
EvalWorkerActionSagas.ts chore: improved performance of getUnevaluatedDataTree (#37189) 2024-11-04 16:03:03 +05:30
FocusRetentionSaga.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
FormEvaluationSaga.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
getNextEntityAfterRemove.test.ts fix: change appsmith alias (#35349) 2024-08-06 17:52:22 +03:00
GitSyncSagas.ts chore: making autocommit GA (#36347) 2024-09-25 14:32:01 +05:30
GlobalSearchSagas.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
helper.test.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
helper.ts chore: add new ADD_ACTION blueprint operation type (#37078) 2024-10-25 12:00:34 +03:00
IDESaga.tsx chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
InitSagas.ts feat: adding branch persistence (#36622) 2024-10-14 19:04:16 +08:00
JSLibrarySaga.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
JSPaneSagas.ts chore: [Plugin Action Editor] Combine Plugin Editor UI state (#36651) 2024-10-08 16:12:27 +05:30
layoutConversionSagas.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
LintingSagas.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
loadGoogleApi.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
ModalSagas.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
NavigationSagas.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
OnboardingSagas.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
OneClickBindingSaga.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
PageVisibilitySagas.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
PluginSagas.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
PostEvaluationSagas.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
PostLintingSagas.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
QueryPaneSagas.ts chore: [Plugin Action Editor] Combine Plugin Editor UI state (#36651) 2024-10-08 16:12:27 +05:30
RecentEntitiesSagas.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
ReplaySaga.ts chore: Migrate sub components into Plugin Action Editor (#36844) 2024-10-16 18:29:10 +05:30
SaaSPaneSagas.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
selectors.tsx chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
SnapshotSagas.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
SnipingModeSaga.test.ts fix: change appsmith alias (#35349) 2024-08-06 17:52:22 +03:00
SnipingModeSagas.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
TemplatesSagas.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
TernSaga.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
ThemeSaga.tsx chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
ToastSagas.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
UtilSagas.ts chore: Cleanup Redux Actions file (#35720) 2024-08-22 09:49:30 +05:30
WidgetAdditionSagas.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
WidgetBlueprintSagas.test.ts fix: jest test failures coz of getIsAnvilLayout (#32664) 2024-04-15 09:17:23 +05:30
WidgetBlueprintSagas.ts chore: add new ADD_ACTION blueprint operation type (#37078) 2024-10-25 12:00:34 +03:00
WidgetDeletionSaga.test.ts fix: Prevent Errors in Debugger When Deleting List Widget (#35820) 2024-08-30 10:38:19 +01:00
WidgetDeletionSagas.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
WidgetEnhancementHelpers.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
WidgetLoadingSaga.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
WidgetOperationSaga.test.tsx chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
WidgetOperationSagas.tsx chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
WidgetOperationUtils.test.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
WidgetOperationUtils.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
WidgetSelectionSagas.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
WidgetSelectUtils.test.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00
WidgetSelectUtils.ts chore: add blank line eslint rule (#36369) 2024-09-18 19:35:28 +03:00