fix: explicit zone drop in modal widget
Description
Issue: Modal widget canvas is not activated when a new zone is dragged from entity explorer.
Fix: Add in a check for the target widget and enable activation of the target canvas for this scenario.
https://github.com/appsmithorg/appsmith/assets/5424788/043321c2-0c33-4607-9c11-47b19e5c24de
Type of change
- Bug fix (non-breaking change which fixes an issue)
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration. Delete anything that is not relevant
- [x] Manual
- [ ] JUnit
- [ ] 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
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag
QA activity:
- [ ] Speedbreak features have been covered
- [ ] Test plan covers all impacted features and areas of interest
- [ ] Test plan has been peer reviewed by project stakeholders and other QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added
Test Plan Approvedlabel after Cypress tests were reviewed - [ ] Added
Test Plan Approvedlabel after JUnit tests were reviewed
Summary by CodeRabbit
-
New Features
- Enhanced canvas interaction by enabling the activation of specific widgets during drag operations, improving the user interface experience.
Walkthrough
Walkthrough
The updates focus on enhancing the canvas activation process within a layout system, specifically targeting drag operations. By integrating new imports and utilizing useSelector to fetch all widgets, the useCanvasActivation function can now selectively activate widgets based on their type. Additionally, the activation logic has been refined to include a specific check for modal widget types during drag operations, ensuring more precise control over which canvas areas can be activated based on the widget being dragged.
Changes
| File(s) | Change Summary |
|---|---|
.../anvil/canvasArenas/hooks/mainCanvas/useCanvasActivation.ts.../anvil/canvasArenas/hooks/mainCanvas/useCanvasActivationStates.ts |
Updated useCanvasActivation to filter activated widgets by type and added draggedWidgetHierarchy property to AnvilCanvasActivationStates. |
.../anvil/canvasArenas/hooks/utils.ts |
Modified canActivateCanvasForDraggedWidget function with widgetType parameter and added logic for modal widget activation during drag. |
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Tips
Chat
There are 3 ways to chat with CodeRabbit:
- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
-
I pushed a fix in commit <commit_id>. -
Generate unit-tests for this file.
-
- Files and specific lines of code (under the "Files changed" tab): Tag
@coderabbitaiin a new review comment at the desired location with your query. Examples:-
@coderabbitai generate unit tests for this file. -
@coderabbitai modularize this function.
-
- PR comments: Tag
@coderabbitaiin a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:-
@coderabbitai generate interesting stats about this repository from git and render them as a table. -
@coderabbitai show all the console.log statements in this repository. -
@coderabbitai read src/utils.ts and generate unit tests. -
@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
-
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.
CodeRabbit Commands (invoked as PR comments)
-
@coderabbitai pauseto pause the reviews on a PR. -
@coderabbitai resumeto resume the paused reviews. -
@coderabbitai reviewto trigger a review. This is useful when automatic reviews are disabled for the repository. -
@coderabbitai resolveresolve all the CodeRabbit review comments. -
@coderabbitai helpto get help.
Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
CodeRabbit Configration File (.coderabbit.yaml)
- You can programmatically configure CodeRabbit by adding a
.coderabbit.yamlfile to the root of your repository. - The JSON schema for the configuration file is available here.
- If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation:
# yaml-language-server: $schema=https://coderabbit.ai/integrations/coderabbit-overrides.v2.json
CodeRabbit Discord Community
Join our Discord Community to get help, request features, and share feedback.
/ok-to-test tags="@tag.All"
Whoa, @tag.All spotted in your test suite! 🚀 While @tag.All is cool, like a catch-all net, why not try specific tags? 🏷️ Narrow down your suite with specific tags for quicker and more accurate tests! 🚀 Less waiting, more zipping through tests like a ninja! Explore the tags documentation here
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/7882341843.
Workflow: Appsmith External Integration Test Workflow.
Tags: ``.
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/7882341843. Commit: ``. Cypress dashboard: Click here! The following are new failures, please fix them before merging the PR:
- cypress/e2e/Regression/ClientSide/Widgets/Audio/AudioRecorder1_spec.ts
- cypress/e2e/Regression/ClientSide/Widgets/Select/RTL_support.ts
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/7882341843. Commit: ``. Cypress dashboard url: Click here! It seems like no tests ran 😔. We are not able to recognize it, please check workflow here.
/ok-to-test tags="@tag.All"
Whoa, @tag.All spotted in your test suite! 🚀 While @tag.All is cool, like a catch-all net, why not try specific tags? 🏷️ Narrow down your suite with specific tags for quicker and more accurate tests! 🚀 Less waiting, more zipping through tests like a ninja! Explore the tags documentation here
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/7899579279.
Workflow: Appsmith External Integration Test Workflow.
Tags: ``.
/ok-to-test tags="@tag.All"
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/7899579279. Commit: ``. Cypress dashboard url: Click here! It seems like no tests ran 😔. We are not able to recognize it, please check workflow here.
Whoa, @tag.All spotted in your test suite! 🚀 While @tag.All is cool, like a catch-all net, why not try specific tags? 🏷️ Narrow down your suite with specific tags for quicker and more accurate tests! 🚀 Less waiting, more zipping through tests like a ninja! Explore the tags documentation here
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/7899622056.
Workflow: Appsmith External Integration Test Workflow.
Tags: ``.
/ok-to-test tags="@tag.All"
Whoa, @tag.All spotted in your test suite! 🚀 While @tag.All is cool, like a catch-all net, why not try specific tags? 🏷️ Narrow down your suite with specific tags for quicker and more accurate tests! 🚀 Less waiting, more zipping through tests like a ninja! Explore the tags documentation here
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/7899933632.
Workflow: Appsmith External Integration Test Workflow.
Tags: ``.
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/7899933632. Commit: ``. Cypress dashboard url: Click here! It seems like no tests ran 😔. We are not able to recognize it, please check workflow here.
/ok-to-test tags="@tag.All"
Whoa, @tag.All spotted in your test suite! 🚀 While @tag.All is cool, like a catch-all net, why not try specific tags? 🏷️ Narrow down your suite with specific tags for quicker and more accurate tests! 🚀 Less waiting, more zipping through tests like a ninja! Explore the tags documentation here
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/7899970180.
Workflow: Appsmith External Integration Test Workflow.
Tags: ``.
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/7899622056. Commit: ``. Cypress dashboard: Click here! The following are new failures, please fix them before merging the PR:
- cypress/e2e/Regression/ClientSide/Workspace/ShareAppTests_Spec.ts
- cypress/e2e/Regression/ServerSide/ApiTests/API_CurlPOSTImport_spec.js
- cypress/e2e/Regression/ServerSide/ApiTests/CurlImportFlow_spec.js
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/7899970180. Commit: ``. Cypress dashboard: Click here! The following are new failures, please fix them before merging the PR:
- cypress/e2e/Regression/ClientSide/Widgets/Select/RTL_support.ts
- cypress/e2e/Regression/ServerSide/ApiTests/API_CurlPOSTImport_spec.js
- cypress/e2e/Regression/ServerSide/ApiTests/CurlImportFlow_spec.js
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/7899970180. Commit: ``. Cypress dashboard: Click here! The following are new failures, please fix them before merging the PR:
- cypress/e2e/Regression/ServerSide/ApiTests/API_CurlPOSTImport_spec.js
- cypress/e2e/Regression/ServerSide/ApiTests/CurlImportFlow_spec.js
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/7899970180. Commit: ``. Cypress dashboard: Click here! The following are new failures, please fix them before merging the PR:
- cypress/e2e/Regression/ServerSide/ApiTests/API_CurlPOSTImport_spec.js
- cypress/e2e/Regression/ServerSide/ApiTests/CurlImportFlow_spec.js
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/7899970180. Commit: ``. Cypress dashboard url: Click here! It seems like no tests ran 😔. We are not able to recognize it, please check workflow here.
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/7899970180. Commit: ``. Cypress dashboard url: Click here! It seems like no tests ran 😔. We are not able to recognize it, please check workflow here.
/ok-to-test tags="@tag.Anvil"
/ok-to-test tags="@tag.All"
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/7914795882.
Workflow: Appsmith External Integration Test Workflow.
Tags: @tag.Anvil.
Whoa, @tag.All spotted in your test suite! 🚀 While @tag.All is cool, like a catch-all net, why not try specific tags? 🏷️ Narrow down your suite with specific tags for quicker and more accurate tests! 🚀 Less waiting, more zipping through tests like a ninja! Explore the tags documentation here