PromucFlow_constructor/app/client/src/sagas/IDESaga.tsx

184 lines
5.8 KiB
TypeScript
Raw Normal View History

chore: Show Tabs on recent access order (#30450) ## Description Update IDE tabs order and limits - Show only recently accessed tabs - If recent tab is was already on screen, do not update order - Limit to just 5 active tabs #### PR fixes following issue(s) Fixes #30365 #### Media https://github.com/appsmithorg/appsmith/assets/12022471/a53a93cd-1b5e-4341-ba4f-289c6bd82b6d > #### Type of change - Chore (housekeeping or task changes that don't impact user perception) ## Testing > #### 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 - [ ] Manual - [ ] JUnit - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [ ] My code follows the style guidelines of this project - [ ] 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 - [ ] 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](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#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 Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced new actions to manage JavaScript and query tabs within the IDE. - Enhanced IDE to update tabs based on route changes. - **Enhancements** - Improved tab management for JavaScript and queries in the IDE. - **Bug Fixes** - Ensured consistent IDE tab states during navigation. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-23 04:52:50 +00:00
import type { FocusEntityInfo } from "navigation/FocusEntity";
import { FocusEntity, identifyEntityFromPath } from "navigation/FocusEntity";
chore: IDE persistence (#31122) ## Description Adds local persistence to IDE level features - IDE Tabs - IDE View mode (Split screen preference) To achieve this, added a new option: `persist` in Focus Retention. This will persist any Focus state and restore it when requested for the first time. #### PR fixes following issue(s) Fixes #31135 Fixes #31025 #### Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video > > #### 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) - Breaking change (fix or feature that would cause existing functionality to not work as expected) - Chore (housekeeping or task changes that don't impact user perception) - This change requires a documentation update > > > ## Testing > #### 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 - [ ] Manual - [ ] JUnit - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [ ] My code follows the style guidelines of this project - [ ] 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 - [ ] 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](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#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 Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced the ability to restore the IDE editor view mode to its last state. - Enhanced IDE tabs functionality with separate handling for query and JS tabs. - Added persistence of certain IDE states to local storage for improved user experience. - **Refactor** - Updated focus management strategies to accommodate new IDE features and state persistence. - Streamlined IDE actions and sagas for better state management and action handling. - **Bug Fixes** - Fixed an issue with the visibility of buttons in the IDE's segmented header based on specific conditions. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-27 05:12:27 +00:00
import { all, call, put, select, takeEvery } from "redux-saga/effects";
import { getJSTabs, getQueryTabs } from "selectors/ideSelectors";
chore: IDE persistence (#31122) ## Description Adds local persistence to IDE level features - IDE Tabs - IDE View mode (Split screen preference) To achieve this, added a new option: `persist` in Focus Retention. This will persist any Focus state and restore it when requested for the first time. #### PR fixes following issue(s) Fixes #31135 Fixes #31025 #### Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video > > #### 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) - Breaking change (fix or feature that would cause existing functionality to not work as expected) - Chore (housekeeping or task changes that don't impact user perception) - This change requires a documentation update > > > ## Testing > #### 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 - [ ] Manual - [ ] JUnit - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [ ] My code follows the style guidelines of this project - [ ] 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 - [ ] 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](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#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 Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced the ability to restore the IDE editor view mode to its last state. - Enhanced IDE tabs functionality with separate handling for query and JS tabs. - Added persistence of certain IDE states to local storage for improved user experience. - **Refactor** - Updated focus management strategies to accommodate new IDE features and state persistence. - Streamlined IDE actions and sagas for better state management and action handling. - **Bug Fixes** - Fixed an issue with the visibility of buttons in the IDE's segmented header based on specific conditions. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-27 05:12:27 +00:00
import {
setIdeEditorViewMode,
setJSTabs,
setQueryTabs,
} from "actions/ideActions";
import history from "../utils/history";
import {
jsCollectionAddURL,
jsCollectionListURL,
queryAddURL,
queryListURL,
} from "@appsmith/RouteBuilder";
import type { EntityItem } from "@appsmith/entities/IDE/constants";
feat: revamped logic for tabs removal and action/JS deletion (#32690) ## Description This PR has changed the logic of next item selection after deleting an item or removing a tab. The new logic is 1. If there is no more tabs left after removal of current item, navigate to first item from all items list 2. If all items list is empty, navigate to add 3. If the removed tab is not currently selected, no redirection required just close the tab 4. If removed tab is in 0th position, redirect to current tab + 1 5. if removed tab is not in 0th position, redirect to tab - 1 Fixes #32634 ## Automation /ok-to-test tags="@tag.Sanity, @tag.IDE" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!CAUTION] > 🔴 🔴 🔴 Some tests have failed. > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8748435770> > Commit: e3e9b51cc9a708fadf4d1b9f0e426b63e9f3c10a > Cypress dashboard: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8748435770&attempt=2&selectiontype=test&testsstatus=failed&specsstatus=fail" target="_blank"> Click here!</a> > The following are new failures, please fix them before merging the PR: <ol> > <li>cypress/e2e/Regression/ClientSide/ExplorerTests/Hide_Page_spec.js > <li>cypress/e2e/Regression/ClientSide/ExplorerTests/Page_Load_Spec.js </ol> > To know the list of identified flaky tests - <a href="https://internal.appsmith.com/app/cypress-dashboard/identified-flaky-tests-65890b3c81d7400d08fa9ee3?branch=master" target="_blank">Refer here</a> <!-- end of auto-generated comment: Cypress test results --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Improved the closing functionality for JavaScript and query action tabs in the IDE, enhancing user experience with smoother tab management. - **Refactor** - Aligned sagas and reducers with new action types for improved handling of tab closures and entity redirects within the IDE. - **Tests** - Updated test cases to reflect changes in IDE saga functions and logic, ensuring reliability and consistency in behavior. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-04-19 06:49:24 +00:00
import { getCurrentPageId } from "@appsmith/selectors/entitiesSelector";
import { getQueryEntityItemUrl } from "@appsmith/pages/Editor/IDE/EditorPane/Query/utils";
import { getJSEntityItemUrl } from "@appsmith/pages/Editor/IDE/EditorPane/JS/utils";
import log from "loglevel";
chore: IDE persistence (#31122) ## Description Adds local persistence to IDE level features - IDE Tabs - IDE View mode (Split screen preference) To achieve this, added a new option: `persist` in Focus Retention. This will persist any Focus state and restore it when requested for the first time. #### PR fixes following issue(s) Fixes #31135 Fixes #31025 #### Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video > > #### 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) - Breaking change (fix or feature that would cause existing functionality to not work as expected) - Chore (housekeeping or task changes that don't impact user perception) - This change requires a documentation update > > > ## Testing > #### 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 - [ ] Manual - [ ] JUnit - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [ ] My code follows the style guidelines of this project - [ ] 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 - [ ] 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](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#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 Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced the ability to restore the IDE editor view mode to its last state. - Enhanced IDE tabs functionality with separate handling for query and JS tabs. - Added persistence of certain IDE states to local storage for improved user experience. - **Refactor** - Updated focus management strategies to accommodate new IDE features and state persistence. - Streamlined IDE actions and sagas for better state management and action handling. - **Bug Fixes** - Fixed an issue with the visibility of buttons in the IDE's segmented header based on specific conditions. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-27 05:12:27 +00:00
import type { ReduxAction } from "@appsmith/constants/ReduxActionConstants";
import { ReduxActionTypes } from "@appsmith/constants/ReduxActionConstants";
import type { EditorViewMode } from "@appsmith/entities/IDE/constants";
import { retrieveIDEViewMode, storeIDEViewMode } from "utils/storage";
feat: revamped logic for tabs removal and action/JS deletion (#32690) ## Description This PR has changed the logic of next item selection after deleting an item or removing a tab. The new logic is 1. If there is no more tabs left after removal of current item, navigate to first item from all items list 2. If all items list is empty, navigate to add 3. If the removed tab is not currently selected, no redirection required just close the tab 4. If removed tab is in 0th position, redirect to current tab + 1 5. if removed tab is not in 0th position, redirect to tab - 1 Fixes #32634 ## Automation /ok-to-test tags="@tag.Sanity, @tag.IDE" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!CAUTION] > 🔴 🔴 🔴 Some tests have failed. > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8748435770> > Commit: e3e9b51cc9a708fadf4d1b9f0e426b63e9f3c10a > Cypress dashboard: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8748435770&attempt=2&selectiontype=test&testsstatus=failed&specsstatus=fail" target="_blank"> Click here!</a> > The following are new failures, please fix them before merging the PR: <ol> > <li>cypress/e2e/Regression/ClientSide/ExplorerTests/Hide_Page_spec.js > <li>cypress/e2e/Regression/ClientSide/ExplorerTests/Page_Load_Spec.js </ol> > To know the list of identified flaky tests - <a href="https://internal.appsmith.com/app/cypress-dashboard/identified-flaky-tests-65890b3c81d7400d08fa9ee3?branch=master" target="_blank">Refer here</a> <!-- end of auto-generated comment: Cypress test results --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Improved the closing functionality for JavaScript and query action tabs in the IDE, enhancing user experience with smoother tab management. - **Refactor** - Aligned sagas and reducers with new action types for improved handling of tab closures and entity redirects within the IDE. - **Tests** - Updated test cases to reflect changes in IDE saga functions and logic, ensuring reliability and consistency in behavior. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-04-19 06:49:24 +00:00
import {
selectJSSegmentEditorTabs,
selectQuerySegmentEditorTabs,
} from "@appsmith/selectors/appIDESelectors";
chore: Show Tabs on recent access order (#30450) ## Description Update IDE tabs order and limits - Show only recently accessed tabs - If recent tab is was already on screen, do not update order - Limit to just 5 active tabs #### PR fixes following issue(s) Fixes #30365 #### Media https://github.com/appsmithorg/appsmith/assets/12022471/a53a93cd-1b5e-4341-ba4f-289c6bd82b6d > #### Type of change - Chore (housekeeping or task changes that don't impact user perception) ## Testing > #### 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 - [ ] Manual - [ ] JUnit - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [ ] My code follows the style guidelines of this project - [ ] 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 - [ ] 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](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#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 Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced new actions to manage JavaScript and query tabs within the IDE. - Enhanced IDE to update tabs based on route changes. - **Enhancements** - Improved tab management for JavaScript and queries in the IDE. - **Bug Fixes** - Ensured consistent IDE tab states during navigation. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-23 04:52:50 +00:00
export function* updateIDETabsOnRouteChangeSaga(entityInfo: FocusEntityInfo) {
const { entity, id } = entityInfo;
fix: Module instance delete navigation (#31140) ## Description This PR addresses the below issues, 1. In App editor, deleting a package is not redirecting to add screen 2. In package Editor, deleting a js/query should fall back to the main 3. Icon not displaying for tabs of package instance #### PR fixes following issue(s) Fixes https://github.com/appsmithorg/appsmith/issues/30894 #### Type of change - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) ## Testing > #### 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 - [ ] Manual - [ ] JUnit - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [ ] My code follows the style guidelines of this project - [ ] 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 - [ ] 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](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#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 Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added IDE type detection for enhanced redirection logic in code editing workflows. - Introduced customizable module icons in the Explorer view for better visual differentiation. - **Enhancements** - Improved IDE tab management to support JavaScript and Query modules, ensuring a smoother development experience. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-20 05:01:57 +00:00
if (
entity === FocusEntity.JS_OBJECT ||
entity === FocusEntity.JS_MODULE_INSTANCE
) {
chore: Show Tabs on recent access order (#30450) ## Description Update IDE tabs order and limits - Show only recently accessed tabs - If recent tab is was already on screen, do not update order - Limit to just 5 active tabs #### PR fixes following issue(s) Fixes #30365 #### Media https://github.com/appsmithorg/appsmith/assets/12022471/a53a93cd-1b5e-4341-ba4f-289c6bd82b6d > #### Type of change - Chore (housekeeping or task changes that don't impact user perception) ## Testing > #### 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 - [ ] Manual - [ ] JUnit - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [ ] My code follows the style guidelines of this project - [ ] 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 - [ ] 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](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#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 Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced new actions to manage JavaScript and query tabs within the IDE. - Enhanced IDE to update tabs based on route changes. - **Enhancements** - Improved tab management for JavaScript and queries in the IDE. - **Bug Fixes** - Ensured consistent IDE tab states during navigation. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-23 04:52:50 +00:00
const jsTabs: string[] = yield select(getJSTabs);
const newTabs: string[] = yield call(getUpdatedTabs, id, jsTabs);
yield put(setJSTabs(newTabs));
}
fix: Module instance delete navigation (#31140) ## Description This PR addresses the below issues, 1. In App editor, deleting a package is not redirecting to add screen 2. In package Editor, deleting a js/query should fall back to the main 3. Icon not displaying for tabs of package instance #### PR fixes following issue(s) Fixes https://github.com/appsmithorg/appsmith/issues/30894 #### Type of change - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) ## Testing > #### 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 - [ ] Manual - [ ] JUnit - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [ ] My code follows the style guidelines of this project - [ ] 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 - [ ] 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](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#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 Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added IDE type detection for enhanced redirection logic in code editing workflows. - Introduced customizable module icons in the Explorer view for better visual differentiation. - **Enhancements** - Improved IDE tab management to support JavaScript and Query modules, ensuring a smoother development experience. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-20 05:01:57 +00:00
if (
entity === FocusEntity.QUERY ||
entity === FocusEntity.QUERY_MODULE_INSTANCE
) {
chore: Show Tabs on recent access order (#30450) ## Description Update IDE tabs order and limits - Show only recently accessed tabs - If recent tab is was already on screen, do not update order - Limit to just 5 active tabs #### PR fixes following issue(s) Fixes #30365 #### Media https://github.com/appsmithorg/appsmith/assets/12022471/a53a93cd-1b5e-4341-ba4f-289c6bd82b6d > #### Type of change - Chore (housekeeping or task changes that don't impact user perception) ## Testing > #### 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 - [ ] Manual - [ ] JUnit - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [ ] My code follows the style guidelines of this project - [ ] 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 - [ ] 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](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#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 Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced new actions to manage JavaScript and query tabs within the IDE. - Enhanced IDE to update tabs based on route changes. - **Enhancements** - Improved tab management for JavaScript and queries in the IDE. - **Bug Fixes** - Ensured consistent IDE tab states during navigation. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-23 04:52:50 +00:00
const queryTabs: string[] = yield select(getQueryTabs);
const newTabs: string[] = yield call(getUpdatedTabs, id, queryTabs);
yield put(setQueryTabs(newTabs));
}
}
function* getUpdatedTabs(newId: string, currentTabs: string[]) {
if (currentTabs.includes(newId)) return currentTabs;
const newTabs = [...currentTabs, newId];
chore: Show Tabs on recent access order (#30450) ## Description Update IDE tabs order and limits - Show only recently accessed tabs - If recent tab is was already on screen, do not update order - Limit to just 5 active tabs #### PR fixes following issue(s) Fixes #30365 #### Media https://github.com/appsmithorg/appsmith/assets/12022471/a53a93cd-1b5e-4341-ba4f-289c6bd82b6d > #### Type of change - Chore (housekeeping or task changes that don't impact user perception) ## Testing > #### 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 - [ ] Manual - [ ] JUnit - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [ ] My code follows the style guidelines of this project - [ ] 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 - [ ] 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](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#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 Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced new actions to manage JavaScript and query tabs within the IDE. - Enhanced IDE to update tabs based on route changes. - **Enhancements** - Improved tab management for JavaScript and queries in the IDE. - **Bug Fixes** - Ensured consistent IDE tab states during navigation. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-23 04:52:50 +00:00
return newTabs;
}
export function* handleJSEntityRedirect(deletedId: string) {
const pageId: string = yield select(getCurrentPageId);
feat: revamped logic for tabs removal and action/JS deletion (#32690) ## Description This PR has changed the logic of next item selection after deleting an item or removing a tab. The new logic is 1. If there is no more tabs left after removal of current item, navigate to first item from all items list 2. If all items list is empty, navigate to add 3. If the removed tab is not currently selected, no redirection required just close the tab 4. If removed tab is in 0th position, redirect to current tab + 1 5. if removed tab is not in 0th position, redirect to tab - 1 Fixes #32634 ## Automation /ok-to-test tags="@tag.Sanity, @tag.IDE" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!CAUTION] > 🔴 🔴 🔴 Some tests have failed. > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8748435770> > Commit: e3e9b51cc9a708fadf4d1b9f0e426b63e9f3c10a > Cypress dashboard: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8748435770&attempt=2&selectiontype=test&testsstatus=failed&specsstatus=fail" target="_blank"> Click here!</a> > The following are new failures, please fix them before merging the PR: <ol> > <li>cypress/e2e/Regression/ClientSide/ExplorerTests/Hide_Page_spec.js > <li>cypress/e2e/Regression/ClientSide/ExplorerTests/Page_Load_Spec.js </ol> > To know the list of identified flaky tests - <a href="https://internal.appsmith.com/app/cypress-dashboard/identified-flaky-tests-65890b3c81d7400d08fa9ee3?branch=master" target="_blank">Refer here</a> <!-- end of auto-generated comment: Cypress test results --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Improved the closing functionality for JavaScript and query action tabs in the IDE, enhancing user experience with smoother tab management. - **Refactor** - Aligned sagas and reducers with new action types for improved handling of tab closures and entity redirects within the IDE. - **Tests** - Updated test cases to reflect changes in IDE saga functions and logic, ensuring reliability and consistency in behavior. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-04-19 06:49:24 +00:00
const jsTabs: EntityItem[] = yield select(selectJSSegmentEditorTabs);
const redirectAction = getNextEntityAfterRemove(deletedId, jsTabs);
switch (redirectAction.action) {
case RedirectAction.LIST:
history.push(jsCollectionListURL({ pageId }));
break;
case RedirectAction.ITEM:
if (!redirectAction.payload) {
log.error("Redirect item does not have a payload");
fix: Module instance delete navigation (#31140) ## Description This PR addresses the below issues, 1. In App editor, deleting a package is not redirecting to add screen 2. In package Editor, deleting a js/query should fall back to the main 3. Icon not displaying for tabs of package instance #### PR fixes following issue(s) Fixes https://github.com/appsmithorg/appsmith/issues/30894 #### Type of change - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) ## Testing > #### 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 - [ ] Manual - [ ] JUnit - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [ ] My code follows the style guidelines of this project - [ ] 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 - [ ] 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](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#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 Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added IDE type detection for enhanced redirection logic in code editing workflows. - Introduced customizable module icons in the Explorer view for better visual differentiation. - **Enhancements** - Improved IDE tab management to support JavaScript and Query modules, ensuring a smoother development experience. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-20 05:01:57 +00:00
history.push(jsCollectionAddURL({ pageId }));
break;
}
const { payload } = redirectAction;
history.push(getJSEntityItemUrl(payload, pageId));
break;
}
}
export function* handleQueryEntityRedirect(deletedId: string) {
const pageId: string = yield select(getCurrentPageId);
feat: revamped logic for tabs removal and action/JS deletion (#32690) ## Description This PR has changed the logic of next item selection after deleting an item or removing a tab. The new logic is 1. If there is no more tabs left after removal of current item, navigate to first item from all items list 2. If all items list is empty, navigate to add 3. If the removed tab is not currently selected, no redirection required just close the tab 4. If removed tab is in 0th position, redirect to current tab + 1 5. if removed tab is not in 0th position, redirect to tab - 1 Fixes #32634 ## Automation /ok-to-test tags="@tag.Sanity, @tag.IDE" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!CAUTION] > 🔴 🔴 🔴 Some tests have failed. > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8748435770> > Commit: e3e9b51cc9a708fadf4d1b9f0e426b63e9f3c10a > Cypress dashboard: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8748435770&attempt=2&selectiontype=test&testsstatus=failed&specsstatus=fail" target="_blank"> Click here!</a> > The following are new failures, please fix them before merging the PR: <ol> > <li>cypress/e2e/Regression/ClientSide/ExplorerTests/Hide_Page_spec.js > <li>cypress/e2e/Regression/ClientSide/ExplorerTests/Page_Load_Spec.js </ol> > To know the list of identified flaky tests - <a href="https://internal.appsmith.com/app/cypress-dashboard/identified-flaky-tests-65890b3c81d7400d08fa9ee3?branch=master" target="_blank">Refer here</a> <!-- end of auto-generated comment: Cypress test results --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Improved the closing functionality for JavaScript and query action tabs in the IDE, enhancing user experience with smoother tab management. - **Refactor** - Aligned sagas and reducers with new action types for improved handling of tab closures and entity redirects within the IDE. - **Tests** - Updated test cases to reflect changes in IDE saga functions and logic, ensuring reliability and consistency in behavior. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-04-19 06:49:24 +00:00
const queryTabs: EntityItem[] = yield select(selectQuerySegmentEditorTabs);
const redirectAction = getNextEntityAfterRemove(deletedId, queryTabs);
switch (redirectAction.action) {
case RedirectAction.LIST:
history.push(queryListURL({ pageId }));
break;
case RedirectAction.ITEM:
if (!redirectAction.payload) {
fix: Module instance delete navigation (#31140) ## Description This PR addresses the below issues, 1. In App editor, deleting a package is not redirecting to add screen 2. In package Editor, deleting a js/query should fall back to the main 3. Icon not displaying for tabs of package instance #### PR fixes following issue(s) Fixes https://github.com/appsmithorg/appsmith/issues/30894 #### Type of change - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) ## Testing > #### 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 - [ ] Manual - [ ] JUnit - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [ ] My code follows the style guidelines of this project - [ ] 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 - [ ] 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](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#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 Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added IDE type detection for enhanced redirection logic in code editing workflows. - Introduced customizable module icons in the Explorer view for better visual differentiation. - **Enhancements** - Improved IDE tab management to support JavaScript and Query modules, ensuring a smoother development experience. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-20 05:01:57 +00:00
history.push(queryAddURL({ pageId }));
log.error("Redirect item does not have a payload");
break;
}
const { payload } = redirectAction;
history.push(getQueryEntityItemUrl(payload, pageId));
break;
}
}
/**
* Adds custom redirect logic to redirect after an item is deleted
* 1. Do not navigate if the deleted item is not selected
* 2. If it was the only item, navigate to the list url, to show the blank state
* 3. If there are other items, navigate to an item close to the current one
* **/
export enum RedirectAction {
NA = "NA", // No action is needed
LIST = "LIST", // Navigate to a creation URL
ITEM = "ITEM", // Navigate to this item
}
interface RedirectActionDescription {
action: RedirectAction;
payload?: EntityItem;
}
feat: revamped logic for tabs removal and action/JS deletion (#32690) ## Description This PR has changed the logic of next item selection after deleting an item or removing a tab. The new logic is 1. If there is no more tabs left after removal of current item, navigate to first item from all items list 2. If all items list is empty, navigate to add 3. If the removed tab is not currently selected, no redirection required just close the tab 4. If removed tab is in 0th position, redirect to current tab + 1 5. if removed tab is not in 0th position, redirect to tab - 1 Fixes #32634 ## Automation /ok-to-test tags="@tag.Sanity, @tag.IDE" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!CAUTION] > 🔴 🔴 🔴 Some tests have failed. > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8748435770> > Commit: e3e9b51cc9a708fadf4d1b9f0e426b63e9f3c10a > Cypress dashboard: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8748435770&attempt=2&selectiontype=test&testsstatus=failed&specsstatus=fail" target="_blank"> Click here!</a> > The following are new failures, please fix them before merging the PR: <ol> > <li>cypress/e2e/Regression/ClientSide/ExplorerTests/Hide_Page_spec.js > <li>cypress/e2e/Regression/ClientSide/ExplorerTests/Page_Load_Spec.js </ol> > To know the list of identified flaky tests - <a href="https://internal.appsmith.com/app/cypress-dashboard/identified-flaky-tests-65890b3c81d7400d08fa9ee3?branch=master" target="_blank">Refer here</a> <!-- end of auto-generated comment: Cypress test results --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Improved the closing functionality for JavaScript and query action tabs in the IDE, enhancing user experience with smoother tab management. - **Refactor** - Aligned sagas and reducers with new action types for improved handling of tab closures and entity redirects within the IDE. - **Tests** - Updated test cases to reflect changes in IDE saga functions and logic, ensuring reliability and consistency in behavior. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-04-19 06:49:24 +00:00
export function getNextEntityAfterRemove(
removedId: string,
tabs: EntityItem[],
): RedirectActionDescription {
const currentSelectedEntity = identifyEntityFromPath(
window.location.pathname,
);
feat: revamped logic for tabs removal and action/JS deletion (#32690) ## Description This PR has changed the logic of next item selection after deleting an item or removing a tab. The new logic is 1. If there is no more tabs left after removal of current item, navigate to first item from all items list 2. If all items list is empty, navigate to add 3. If the removed tab is not currently selected, no redirection required just close the tab 4. If removed tab is in 0th position, redirect to current tab + 1 5. if removed tab is not in 0th position, redirect to tab - 1 Fixes #32634 ## Automation /ok-to-test tags="@tag.Sanity, @tag.IDE" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!CAUTION] > 🔴 🔴 🔴 Some tests have failed. > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8748435770> > Commit: e3e9b51cc9a708fadf4d1b9f0e426b63e9f3c10a > Cypress dashboard: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8748435770&attempt=2&selectiontype=test&testsstatus=failed&specsstatus=fail" target="_blank"> Click here!</a> > The following are new failures, please fix them before merging the PR: <ol> > <li>cypress/e2e/Regression/ClientSide/ExplorerTests/Hide_Page_spec.js > <li>cypress/e2e/Regression/ClientSide/ExplorerTests/Page_Load_Spec.js </ol> > To know the list of identified flaky tests - <a href="https://internal.appsmith.com/app/cypress-dashboard/identified-flaky-tests-65890b3c81d7400d08fa9ee3?branch=master" target="_blank">Refer here</a> <!-- end of auto-generated comment: Cypress test results --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Improved the closing functionality for JavaScript and query action tabs in the IDE, enhancing user experience with smoother tab management. - **Refactor** - Aligned sagas and reducers with new action types for improved handling of tab closures and entity redirects within the IDE. - **Tests** - Updated test cases to reflect changes in IDE saga functions and logic, ensuring reliability and consistency in behavior. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-04-19 06:49:24 +00:00
const isSelectedActionRemoved = currentSelectedEntity.id === removedId;
feat: revamped logic for tabs removal and action/JS deletion (#32690) ## Description This PR has changed the logic of next item selection after deleting an item or removing a tab. The new logic is 1. If there is no more tabs left after removal of current item, navigate to first item from all items list 2. If all items list is empty, navigate to add 3. If the removed tab is not currently selected, no redirection required just close the tab 4. If removed tab is in 0th position, redirect to current tab + 1 5. if removed tab is not in 0th position, redirect to tab - 1 Fixes #32634 ## Automation /ok-to-test tags="@tag.Sanity, @tag.IDE" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!CAUTION] > 🔴 🔴 🔴 Some tests have failed. > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8748435770> > Commit: e3e9b51cc9a708fadf4d1b9f0e426b63e9f3c10a > Cypress dashboard: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8748435770&attempt=2&selectiontype=test&testsstatus=failed&specsstatus=fail" target="_blank"> Click here!</a> > The following are new failures, please fix them before merging the PR: <ol> > <li>cypress/e2e/Regression/ClientSide/ExplorerTests/Hide_Page_spec.js > <li>cypress/e2e/Regression/ClientSide/ExplorerTests/Page_Load_Spec.js </ol> > To know the list of identified flaky tests - <a href="https://internal.appsmith.com/app/cypress-dashboard/identified-flaky-tests-65890b3c81d7400d08fa9ee3?branch=master" target="_blank">Refer here</a> <!-- end of auto-generated comment: Cypress test results --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Improved the closing functionality for JavaScript and query action tabs in the IDE, enhancing user experience with smoother tab management. - **Refactor** - Aligned sagas and reducers with new action types for improved handling of tab closures and entity redirects within the IDE. - **Tests** - Updated test cases to reflect changes in IDE saga functions and logic, ensuring reliability and consistency in behavior. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-04-19 06:49:24 +00:00
// If removed item is not currently selected, don't redirect
if (!isSelectedActionRemoved) {
return {
action: RedirectAction.NA,
};
}
feat: revamped logic for tabs removal and action/JS deletion (#32690) ## Description This PR has changed the logic of next item selection after deleting an item or removing a tab. The new logic is 1. If there is no more tabs left after removal of current item, navigate to first item from all items list 2. If all items list is empty, navigate to add 3. If the removed tab is not currently selected, no redirection required just close the tab 4. If removed tab is in 0th position, redirect to current tab + 1 5. if removed tab is not in 0th position, redirect to tab - 1 Fixes #32634 ## Automation /ok-to-test tags="@tag.Sanity, @tag.IDE" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!CAUTION] > 🔴 🔴 🔴 Some tests have failed. > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8748435770> > Commit: e3e9b51cc9a708fadf4d1b9f0e426b63e9f3c10a > Cypress dashboard: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8748435770&attempt=2&selectiontype=test&testsstatus=failed&specsstatus=fail" target="_blank"> Click here!</a> > The following are new failures, please fix them before merging the PR: <ol> > <li>cypress/e2e/Regression/ClientSide/ExplorerTests/Hide_Page_spec.js > <li>cypress/e2e/Regression/ClientSide/ExplorerTests/Page_Load_Spec.js </ol> > To know the list of identified flaky tests - <a href="https://internal.appsmith.com/app/cypress-dashboard/identified-flaky-tests-65890b3c81d7400d08fa9ee3?branch=master" target="_blank">Refer here</a> <!-- end of auto-generated comment: Cypress test results --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Improved the closing functionality for JavaScript and query action tabs in the IDE, enhancing user experience with smoother tab management. - **Refactor** - Aligned sagas and reducers with new action types for improved handling of tab closures and entity redirects within the IDE. - **Tests** - Updated test cases to reflect changes in IDE saga functions and logic, ensuring reliability and consistency in behavior. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-04-19 06:49:24 +00:00
const indexOfTab = tabs.findIndex((item) => item.key === removedId);
switch (indexOfTab) {
case -1:
// If no other action is remaining, navigate to the creation url
return {
action: RedirectAction.LIST,
};
case 0:
// if the removed item is first item, then if tabs present, tabs + 1
// else otherItems[0] -> TODO: consider changing this logic after discussion with
// design team. May be new listing UI for side by side
if (tabs.length > 1) {
return {
action: RedirectAction.ITEM,
payload: tabs[1],
};
} else {
return {
action: RedirectAction.LIST,
};
}
default:
return {
action: RedirectAction.ITEM,
payload: tabs[indexOfTab - 1],
};
}
}
chore: IDE persistence (#31122) ## Description Adds local persistence to IDE level features - IDE Tabs - IDE View mode (Split screen preference) To achieve this, added a new option: `persist` in Focus Retention. This will persist any Focus state and restore it when requested for the first time. #### PR fixes following issue(s) Fixes #31135 Fixes #31025 #### Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video > > #### 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) - Breaking change (fix or feature that would cause existing functionality to not work as expected) - Chore (housekeeping or task changes that don't impact user perception) - This change requires a documentation update > > > ## Testing > #### 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 - [ ] Manual - [ ] JUnit - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [ ] My code follows the style guidelines of this project - [ ] 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 - [ ] 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](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#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 Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced the ability to restore the IDE editor view mode to its last state. - Enhanced IDE tabs functionality with separate handling for query and JS tabs. - Added persistence of certain IDE states to local storage for improved user experience. - **Refactor** - Updated focus management strategies to accommodate new IDE features and state persistence. - Streamlined IDE actions and sagas for better state management and action handling. - **Bug Fixes** - Fixed an issue with the visibility of buttons in the IDE's segmented header based on specific conditions. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-27 05:12:27 +00:00
function* storeIDEViewChangeSaga(
action: ReduxAction<{ view: EditorViewMode }>,
) {
yield call(storeIDEViewMode, action.payload.view);
}
function* restoreIDEViewModeSaga() {
const storedState: EditorViewMode = yield call(retrieveIDEViewMode);
if (storedState) {
yield put(setIdeEditorViewMode(storedState));
}
}
export default function* root() {
yield all([
takeEvery(
ReduxActionTypes.SET_IDE_EDITOR_VIEW_MODE,
storeIDEViewChangeSaga,
),
takeEvery(
ReduxActionTypes.RESTORE_IDE_EDITOR_VIEW_MODE,
restoreIDEViewModeSaga,
),
]);
}