PromucFlow_constructor/app/client
Abhinav Jha d858eee763
chore: Reduce DSL size by removing runtime values from the DSL. (#34894)
## Description
Today, the DSL contains many properties that are not necessary to be
persisted, as these are properties which are inherent to the widget type
and are statically available in the codebase and during runtime.

`getChildWidgetProps` is the lowest level function the widget addition
flow that is not used in recursion and does not need to return these
runtime properties for proper functioning of the widget addition flow.

The flow is as follows:
`addChildSaga` -> `getUpdateDSLAfterCreatingChild` ->
`generateChildWidgets` -> `getChildWidgetProps` -> `generateWidgetProps`
(Don't understand the distinction in the names of the functions? Me
neither)

In this PR, we're selectively deleting the properties which are going to
be set into the DSL and are not required by the DSL. This is done in the
`getChildWidgetProps` function.


DSL Before:
```{
        "isVisible": true,
        "type": "BUTTON_WIDGET",
        "animateLoading": true,
        "text": "Submit",
        "buttonVariant": "PRIMARY",
        "placement": "CENTER",
        "widgetName": "Button1",
        "isDisabled": false,
        "isDefaultClickDisabled": true,
        "disabledWhenInvalid": false,
        "resetFormOnClick": false,
        "recaptchaType": "V3",
        "version": 1,
        "responsiveBehavior": "hug",
        "minWidth": 120,
        "searchTags": ["click", "submit"],
        "tags": ["Buttons"],
        "hideCard": false,
        "isDeprecated": false,
        "displayName": "Button",
        "key": "yngxey92vx",
        "iconSVG": "https://release-appcdn.appsmith.com/static/media/icon.7a418b9e1899a550d7e8f33b48cbde12.svg",
        "thumbnailSVG": "https://release-appcdn.appsmith.com/static/media/thumbnail.a348658e996feaad96cadc30d99374ff.svg",
        "needsErrorInfo": false,
        "onCanvasUI": {
          "selectionBGCSSVar": "--on-canvas-ui-widget-selection",
          "focusBGCSSVar": "--on-canvas-ui-widget-focus",
          "selectionColorCSSVar": "--on-canvas-ui-widget-focus",
          "focusColorCSSVar": "--on-canvas-ui-widget-selection",
          "disableParentSelection": false
        },
        "widgetId": "3du74sjd24",
        "renderMode": "CANVAS",
        "buttonColor": "{{appsmith.theme.colors.primaryColor}}",
        "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
        "boxShadow": "none",
        "isLoading": false,
        "parentColumnSpace": 16.21875,
        "parentRowSpace": 10,
        "leftColumn": 16,
        "rightColumn": 32,
        "topRow": 27,
        "bottomRow": 31,
        "mobileLeftColumn": 16,
        "mobileRightColumn": 32,
        "mobileTopRow": 27,
        "mobileBottomRow": 31,
        "parentId": "0",
        "dynamicBindingPathList": [
          { "key": "buttonColor" },
          { "key": "borderRadius" }
        ]
      }
```

DSL After:
```
{
        "isVisible": true,
        "type": "BUTTON_WIDGET",
        "animateLoading": true,
        "text": "Submit",
        "buttonVariant": "PRIMARY",
        "placement": "CENTER",
        "widgetName": "Button1",
        "isDisabled": false,
        "isDefaultClickDisabled": true,
        "disabledWhenInvalid": false,
        "resetFormOnClick": false,
        "recaptchaType": "V3",
        "version": 1,
        "responsiveBehavior": "hug",
        "minWidth": 120,
        "key": "gtjsfondgr",
        "needsErrorInfo": false,
        "widgetId": "cszodka6p1",
        "renderMode": "CANVAS",
        "buttonColor": "{{appsmith.theme.colors.primaryColor}}",
        "borderRadius": "{{appsmith.theme.borderRadius.appBorderRadius}}",
        "boxShadow": "none",
        "isLoading": false,
        "parentColumnSpace": 16.21875,
        "parentRowSpace": 10,
        "leftColumn": 18,
        "rightColumn": 34,
        "topRow": 28,
        "bottomRow": 32,
        "mobileLeftColumn": 18,
        "mobileRightColumn": 34,
        "mobileTopRow": 28,
        "mobileBottomRow": 32,
        "parentId": "0",
        "dynamicBindingPathList": [
          { "key": "buttonColor" },
          { "key": "borderRadius" }
        ]
      }

```

Fixes #21825
## 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/9904027497>
> Commit: b6eac580e47dcdd0b056acdb574aac7b8c7cba2f
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9904027497&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Fri, 12 Jul 2024 08:10:58 UTC
<!-- end of auto-generated comment: Cypress test results  -->


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


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

- **Refactor**
- Improved the drag state generation logic for fixed layouts to enhance
performance and maintainability.
- Simplified the `widget` object in the `WidgetAdditionSagas` to remove
unnecessary properties, improving clarity and efficiency.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-07-16 09:47:55 +05:30
..
.husky
.yarn
cypress test: added a validation post fork (#34857) 2024-07-15 17:32:17 +05:30
docker/templates chore: Fix bugs in logic for capturing web vitals for client (#32371) 2024-04-09 14:25:46 +05:30
generators
packages chore: Compute default value for jsaction params (#34708) 2024-07-15 21:01:42 +05:30
public fix: font family changes to PT root in privacy and tnc pages (#33992) 2024-06-05 16:21:56 +05:30
src chore: Reduce DSL size by removing runtime values from the DSL. (#34894) 2024-07-16 09:47:55 +05:30
test feat: side-by-side edit mode hover analytics (#34185) 2024-06-20 14:03:06 +05:30
typings
.babelrc
.dockerignore
.editorconfig
.eslintrc.base.json perf: add react-hooks/exhaustive-deps rule (#34338) 2024-06-20 10:20:19 +03:00
.eslintrc.js
.fork-ts-checkerrc
.gitignore chore: update storybook (#32828) 2024-04-22 12:17:28 +03:00
.lintstagedrc.json
.nvmrc
.prettierignore
.prettierrc
.sentryclirc
.yarnrc.yml
build.sh
craco.build.config.js chore: Prefetch module apis in service worker (#34003) 2024-06-14 16:30:23 +05:30
craco.common.config.js
craco.dev.config.js chore: Prefetch module apis in service worker (#34003) 2024-06-14 16:30:23 +05:30
cypress_ci_custom.config.ts
cypress_ci_hosted.config.ts
cypress_ci.config.ts
cypress-add-tags.js
cypress.config.ts
download-assets.js
jest.config.js chore: Fix bugs in logic for capturing web vitals for client (#32371) 2024-04-09 14:25:46 +05:30
package.json feat: IDE tab list search view (#34759) 2024-07-10 18:58:30 +05:30
README.md
README.old.md
start-caddy.sh chore: Remove deprecated start-https.sh message (#33856) 2024-05-31 07:18:57 +05:30
start-https.sh chore: Remove deprecated start-https.sh message (#33856) 2024-05-31 07:18:57 +05:30
tailwind.config.js
tsconfig.json
tsconfig.path.json
vercel.json
yarn.lock feat: IDE tab list search view (#34759) 2024-07-10 18:58:30 +05:30

Appsmith Client

This project was bootstrapped with Create React App.

For details on setting up your development machine, please refer to the Setup Guide