appsmith
appsmith copied to clipboard
feat: Expand auto height implementation to handle auto height use cases.
Description
Expand auto layout implementation to handle auto height use cases. Use cases handled in this PR:
- Change canvas and container-like widget height on adding / removing widgets.
- Container height update on content change of individual props, e.g. text, checkbox groups.
- Tabs widget use cases - change height on tab change, shouldShowProps update.
- Correct modal widget height.
- List widget updates - disable auto height, enable manual resizing of item container.
- Fix resize loop.
Fixes https://github.com/appsmithorg/appsmith/issues/21977 Fixes https://github.com/appsmithorg/appsmith/issues/22093 Fixes https://github.com/appsmithorg/appsmith/issues/21837 Fixes https://github.com/appsmithorg/appsmith/issues/22183 Fixes https://github.com/appsmithorg/appsmith/issues/21758 Fixes https://github.com/appsmithorg/appsmith/issues/21870 Fixes https://github.com/appsmithorg/appsmith/issues/22086 Fixes https://github.com/appsmithorg/appsmith/issues/22539 Fixes https://github.com/appsmithorg/appsmith/issues/22329 Fixes #22588
Type of change
Please delete options that are not relevant.
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
How Has This Been Tested?
- Manual
- Jest
- Cypress
Checklist:
Dev activity
- [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
- [ ] My changes generate no new warnings
- [ ] 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
- [ ] PR is being merged under a feature flag
/build-deploy-preview env=release
Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/4874387708.
Workflow: On demand build Docker image and deploy preview
.
skip-tests: ``.
env: release
.
PR: 22974.
recreate: .
/build-deploy-preview env=release
Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/4875555759.
Workflow: On demand build Docker image and deploy preview
.
skip-tests: ``.
env: release
.
PR: 22974.
recreate: .
/build-deploy-preview env=release
Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/4877113679.
Workflow: On demand build Docker image and deploy preview
.
skip-tests: ``.
env: release
.
PR: 22974.
recreate: .
/build-deploy-preview env=release
Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/4877898502.
Workflow: On demand build Docker image and deploy preview
.
skip-tests: ``.
env: release
.
PR: 22974.
recreate: .
Deploy-Preview-URL: https://appsmith-bl9nuxdsx-get-appsmith.vercel.app
/ok-to-test
/build-deploy-preview env=release
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/4882731965.
Workflow: Appsmith External Integration Test Workflow
.
Commit: ``.
PR: 22974.
Perf tests will be available at https://app.appsmith.com/app/performance-infra-dashboard/pr-details-638dd7cd2913ba43778b915e?pr=22974&runId=4882731965_1
Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/4882733378.
Workflow: On demand build Docker image and deploy preview
.
skip-tests: ``.
env: release
.
PR: 22974.
recreate: .
Deploy-Preview-URL: https://appsmith-br0thgzeg-get-appsmith.vercel.app
/ok-to-test
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/4883104926.
Workflow: Appsmith External Integration Test Workflow
.
Commit: ``.
PR: 22974.
Perf tests will be available at https://app.appsmith.com/app/performance-infra-dashboard/pr-details-638dd7cd2913ba43778b915e?pr=22974&runId=4883104926_1
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/4883104926. Commit: ``. The following are new failures, please fix them before merging the PR:
- cypress/integration/Regression_TestSuite/ClientSideTests/MobileResponsiveTests/AutoScroll_Validation_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/OtherUIFeatures/Resize_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Sliders/RangeSlider_spec.ts
/ok-to-test
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/4884829326.
Workflow: Appsmith External Integration Test Workflow
.
Commit: ``.
PR: 22974.
Perf tests will be available at https://app.appsmith.com/app/performance-infra-dashboard/pr-details-638dd7cd2913ba43778b915e?pr=22974&runId=4884829326_1
/build-deploy-preview env=release
Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/4885253148.
Workflow: On demand build Docker image and deploy preview
.
skip-tests: ``.
env: release
.
PR: 22974.
recreate: .
Deploy-Preview-URL: https://appsmith-73bwhg6c9-get-appsmith.vercel.app
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/4884829326. Commit: ``. The following are new failures, please fix them before merging the PR:
- cypress/integration/Regression_TestSuite/ClientSideTests/BugTests/AllWidgets_Reset_Spec.ts
- cypress/integration/Regression_TestSuite/ClientSideTests/ExplorerTests/Entity_Explorer_DragAndDropWidget_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Git/GitDiscardChange/DiscardChanges_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Git/GitImport/GitImport_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Git/GitSync/DeleteBranch_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Git/GitSync/GitSyncedApps_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Git/GitSync/SwitchBranches_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Git/GitWithTheming/GitWithTheming_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/IDE/Canvas_Context_Property_Pane_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/IDE/Canvas_Context_Selected_Widgets_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/MobileResponsiveTests/AutoFillWidgets_Basic_2_test.js
- cypress/integration/Regression_TestSuite/ClientSideTests/MobileResponsiveTests/AutoFillWidgets_Basic_test.js
- cypress/integration/Regression_TestSuite/ClientSideTests/MobileResponsiveTests/AutoScroll_Validation_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/MobileResponsiveTests/FillwidgetResizingSpec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/OtherUIFeatures/ApplicationURL_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/OtherUIFeatures/Replay_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/ThemingTests/Basic_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/ThemingTests/ThemeReset_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/ThemingTests/Theme_Default_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/ThemingTests/Theme_FormWidget_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/VisualTests/WidgetsLayout_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Audio/AudioRecorder_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Button/ButtonGroup_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Checkbox/CheckboxGroup1_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Checkbox/CheckboxGroup2_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Checkbox/CheckboxGroup_withQuery_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/CodeScanner/CodeScanner_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/CurrencyInput/CurrencyInput_ShowStepArrows_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/CurrencyInput/CurrencyInput_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Datepicker/DatePickerV2_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Dropdown/Dropdown_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Filepicker/FilePickerV2_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Filepicker/Filepicker1_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Input/Input_Multiline_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Input/Input_OnFocus_OnBlur_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Input/Inputv2_ShowStepArrows_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Input/Inputv2_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/JSONForm/JSONForm_Basic_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/ListV2/ListV2_PropertyPane_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/ListV2/Listv2_Copy_Paste_Delete_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/ListV2/Listv2_EvaluatedPopup_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/ListV2/Listv2_onItemClick_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/ListV2/Listv2_regression_fix_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Multiselect/MultiSelect1_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Multiselect/MultiSelect4_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Multiselect/MultiTreeSelect_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Others/Progress_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/PhoneInput/Phone_input_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Radio/RadioGroup1_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Radio/RadioGroup2_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Select/Select_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Select/Select_widget1_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Select/Tree_Select_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Switch/Switchgroup1_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/TableV2/TableV2_tabledata_schema_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/TableV2/columnTypes/checkboxCell_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/TableV2/columnTypes/menubutton_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/TableV2/columnTypes/select_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/TableV2/columnTypes/switchCell_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/TableV2/freeze_column_query_change_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/TableV2/freeze_column_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/TableV2/virtual_row_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/WidgetCopyPaste_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Widgets_Labels_spec.js
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/4884829326. Commit: ``. The following are new failures, please fix them before merging the PR:
- cypress/integration/Regression_TestSuite/ClientSideTests/ExplorerTests/Entity_Explorer_DragAndDropWidget_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Git/GitDiscardChange/DiscardChanges_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Git/GitImport/GitImport_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Git/GitSync/DeleteBranch_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Git/GitSync/GitSyncedApps_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Git/GitSync/SwitchBranches_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Git/GitWithTheming/GitWithTheming_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/IDE/Canvas_Context_Property_Pane_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/IDE/Canvas_Context_Selected_Widgets_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/MobileResponsiveTests/AutoFillWidgets_Basic_2_test.js
- cypress/integration/Regression_TestSuite/ClientSideTests/MobileResponsiveTests/AutoFillWidgets_Basic_test.js
- cypress/integration/Regression_TestSuite/ClientSideTests/MobileResponsiveTests/AutoScroll_Validation_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/MobileResponsiveTests/FillwidgetResizingSpec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/OtherUIFeatures/ApplicationURL_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/OtherUIFeatures/Replay_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/ThemingTests/Basic_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/ThemingTests/ThemeReset_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/ThemingTests/Theme_Default_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/ThemingTests/Theme_FormWidget_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/VisualTests/WidgetsLayout_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Audio/AudioRecorder_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Button/ButtonGroup_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Checkbox/CheckboxGroup1_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Checkbox/CheckboxGroup2_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Checkbox/CheckboxGroup_withQuery_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/CodeScanner/CodeScanner_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/CurrencyInput/CurrencyInput_ShowStepArrows_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/CurrencyInput/CurrencyInput_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Datepicker/DatePickerV2_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Dropdown/Dropdown_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Filepicker/FilePickerV2_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Filepicker/Filepicker1_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Input/Input_Multiline_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Input/Input_OnFocus_OnBlur_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Input/Inputv2_ShowStepArrows_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Input/Inputv2_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/JSONForm/JSONForm_Basic_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/ListV2/ListV2_PropertyPane_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/ListV2/Listv2_Copy_Paste_Delete_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/ListV2/Listv2_EvaluatedPopup_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/ListV2/Listv2_onItemClick_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/ListV2/Listv2_regression_fix_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Multiselect/MultiSelect1_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Multiselect/MultiSelect4_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Multiselect/MultiTreeSelect_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Others/Progress_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/PhoneInput/Phone_input_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Radio/RadioGroup1_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Radio/RadioGroup2_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Select/Select_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Select/Select_widget1_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Select/Tree_Select_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Switch/Switchgroup1_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/TableV2/TableV2_tabledata_schema_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/TableV2/columnTypes/checkboxCell_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/TableV2/columnTypes/menubutton_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/TableV2/columnTypes/select_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/TableV2/columnTypes/switchCell_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/TableV2/freeze_column_query_change_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/TableV2/freeze_column_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/TableV2/virtual_row_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/WidgetCopyPaste_spec.js
- cypress/integration/Regression_TestSuite/ClientSideTests/Widgets/Widgets_Labels_spec.js
/ok-to-test
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/4886422921.
Workflow: Appsmith External Integration Test Workflow
.
Commit: ``.
PR: 22974.
Perf tests will be available at https://app.appsmith.com/app/performance-infra-dashboard/pr-details-638dd7cd2913ba43778b915e?pr=22974&runId=4886422921_1
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/4886422921. Commit: ``. The following are new failures, please fix them before merging the PR:
- cypress/integration/Regression_TestSuite/ClientSideTests/ActionExecution/StoreValue_spec.ts
- cypress/integration/Regression_TestSuite/ClientSideTests/Autocomplete/Autocomplete_JS_spec.ts
- cypress/integration/Regression_TestSuite/ClientSideTests/BugTests/AllWidgets_Reset_Spec.ts
- cypress/integration/Regression_TestSuite/ClientSideTests/MobileResponsiveTests/AutoScroll_Validation_spec.js
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/4886422921. Commit: ``. The following are new failures, please fix them before merging the PR:
- cypress/integration/Regression_TestSuite/ClientSideTests/MobileResponsiveTests/AutoScroll_Validation_spec.js
/ok-to-test
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/4888346201.
Workflow: Appsmith External Integration Test Workflow
.
Commit: ``.
PR: 22974.
Perf tests will be available at https://app.appsmith.com/app/performance-infra-dashboard/pr-details-638dd7cd2913ba43778b915e?pr=22974&runId=4888346201_1