PromucFlow_constructor/app/client
Rishabh Rathod d6372d0b81
feat: JSObject variable as a state (JSObject variable mutation) (#19926)
Fixes #19653 
Fixes #14568 
Fixes #17199
Fixes #14989

In this PR, we introduce a new feature in JSObject where the `variables`
are now state and widgets are reactive to the change in the variable
value.
- It means that `JSObject.myVar1 = "Hello world"` would show `Hello
world` where ever a binding `{{JSObject.myVar1}}` is used.

Further changes
- JSObject run functionality, executes all the functions in async
evaluation.
    - `executeSyncJS` flow is removed 
-  `resolvedFunctions` state is moved to JSCollection class.
- unEval JSObject value i.e., currentJSCollectionState is moved to
JSCollection class.
- `evalTreeWithChanges` is introduced - A new flow to trigger evaluation
from the worker and send the updated dataTree to mainThread.
- This would open up a new possibility of features in evaluation
mentioned
[here](https://www.notion.so/appsmith/RFC-Dependent-Property-in-Widgets-f3b29ad652b549dd8c49189f48dbbc4b)
- Introduction of `updateDataTreeHandler` to accept new dataTree from
the worker.
## Type of change

- New feature (non-breaking change which adds functionality)

## How Has This Been Tested?

### Jest Test
- `Mutation.test.ts` 
- `JSVariableProxy.test.ts`
-  `removeProxy.test.ts`

### Cypress test
- Mutation with 
   - numbers
   - array
   - object
   - map
   - set

### Test Plan
- https://github.com/appsmithorg/TestSmith/issues/2186

### Issues raised during DP testing

- https://github.com/appsmithorg/appsmith/pull/19926#issuecomment-1453275688
- https://github.com/appsmithorg/appsmith/pull/19926#issuecomment-1478975487
- https://github.com/appsmithorg/appsmith/pull/19926#issuecomment-1482929425
- https://github.com/appsmithorg/appsmith/pull/19926#issuecomment-1486611858

Co-authored-by: Rimil Dey <rimildeyjsr@gmail.com>
Co-authored-by: Rimil Dey <rimil@appsmith.com>
Co-authored-by: arunvjn <32433245+arunvjn@users.noreply.github.com>
2023-04-07 13:11:36 +05:30
..
.husky chore: improve husky and lint-staged checks (#21679) 2023-03-23 17:02:18 +05:30
cypress feat: JSObject variable as a state (JSObject variable mutation) (#19926) 2023-04-07 13:11:36 +05:30
docker fix: Revert container-internal communication when using IPv6 (#21260) 2023-03-08 21:03:46 +05:30
generators chore: upgrade to prettier v2 + enforce import types (#21013)Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com> 2023-03-16 17:11:47 +05:30
packages feat: wds button refactoring (#21849) 2023-04-05 18:09:11 +05:30
patches
perf ci: run fat container docker inside perf tests and update setup-perf-test workflow to use localhost for accessing dev environment (#20280) 2023-02-07 15:56:41 +05:30
public test: Cypress - Automated basic tests for MsSQL DS (#21446) 2023-03-16 23:58:32 +05:30
src feat: JSObject variable as a state (JSObject variable mutation) (#19926) 2023-04-07 13:11:36 +05:30
test chore: Add new navigation scenarios for route change event (#21682) 2023-03-30 11:03:29 +05:30
typings feat: peek overlay (#20053) 2023-02-17 21:33:34 +05:30
.babelrc chore: Yarn workspaces + Storybook + WDS (#20776) 2023-03-03 12:17:35 +05:30
.dockerignore
.editorconfig
.eslintrc.json chore: improve husky and lint-staged checks (#21679) 2023-03-23 17:02:18 +05:30
.gitignore chore: improve husky and lint-staged checks (#21679) 2023-03-23 17:02:18 +05:30
.lintstagedrc chore: improve husky and lint-staged checks (#21679) 2023-03-23 17:02:18 +05:30
.nvmrc
.prettierignore ci: Add lint check to the build step (#21442) 2023-03-20 22:50:44 +05:30
.prettierrc chore: upgrade to prettier v2 + enforce import types (#21013)Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com> 2023-03-16 17:11:47 +05:30
.sentryclirc
build.sh ci: storybook build and deploy for appsmith wds (#21433) 2023-03-21 10:36:40 +05:30
craco.build.config.js
craco.common.config.js chore: Yarn workspaces + Storybook + WDS (#20776) 2023-03-03 12:17:35 +05:30
craco.dev.config.js
cypress_ci.json test: Cypress Flaky fixes + Mock api update + PgAdminspec fix (#20032) 2023-02-02 13:29:24 +05:30
cypress.json test: Cypress Flaky fixes + Mock api update + PgAdminspec fix (#20032) 2023-02-02 13:29:24 +05:30
Dockerfile
jest.config.js fix: Remove extra event and old disable var (#20624) 2023-02-15 19:16:04 +05:30
package.json feat: Action selector (#21582) 2023-04-06 22:19:12 +05:30
README.md
README.old.md
start-https.sh fix: Revert container-internal communication when using IPv6 (#21260) 2023-03-08 21:03:46 +05:30
tailwind.config.js chore: upgrade to prettier v2 + enforce import types (#21013)Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com> 2023-03-16 17:11:47 +05:30
tsconfig.json chore: upgrade to prettier v2 + enforce import types (#21013)Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com> 2023-03-16 17:11:47 +05:30
tsconfig.path.json
vercel.json
yarn.lock feat: Action selector (#21582) 2023-04-06 22:19:12 +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