PromucFlow_constructor/app/client/src/actions/templateActions.ts

104 lines
2.5 KiB
TypeScript
Raw Normal View History

import { ReduxActionTypes } from "ee/constants/ReduxActionConstants";
2022-03-03 10:56:53 +00:00
export const getAllTemplates = () => ({
type: ReduxActionTypes.GET_ALL_TEMPLATES_INIT,
});
export const filterTemplates = (category: string, filterList: string[]) => ({
type: ReduxActionTypes.UPDATE_TEMPLATE_FILTERS,
payload: {
category,
filterList,
},
});
export const setTemplateSearchQuery = (query: string) => ({
type: ReduxActionTypes.SET_TEMPLATE_SEARCH_QUERY,
payload: query,
});
export const importTemplateToWorkspace = (
2022-03-03 10:56:53 +00:00
templateId: string,
workspaceId: string,
2022-03-03 10:56:53 +00:00
) => ({
type: ReduxActionTypes.IMPORT_TEMPLATE_TO_WORKSPACE_INIT,
2022-03-03 10:56:53 +00:00
payload: {
templateId,
workspaceId,
2022-03-03 10:56:53 +00:00
},
});
export const getSimilarTemplatesInit = (templateId: string) => ({
type: ReduxActionTypes.GET_SIMILAR_TEMPLATES_INIT,
payload: templateId,
});
export const setTemplateNotificationSeenAction = (payload: boolean) => ({
type: ReduxActionTypes.SET_TEMPLATE_NOTIFICATION_SEEN,
payload,
});
export const getTemplateNotificationSeenAction = () => ({
type: ReduxActionTypes.GET_TEMPLATE_NOTIFICATION_SEEN,
});
2022-03-31 05:16:04 +00:00
export const getTemplateInformation = (payload: string) => ({
type: ReduxActionTypes.GET_TEMPLATE_INIT,
payload,
});
feat: adds `see more` to canvas starter templates (#29777) ## Description * This PR increases discovery of building blocks, allowing more building blocks to be shown in canvas. * We also refactored the way `add a page from template` functions: now we have updated store structure to reflect from where the modal open was triggered. * This pull request refactors the template styling and adds support for an optional modal layout. It also includes various updates and fixes to the styled components used in the templates feature. #### PR fixes following issue(s) Fixes #29723 > if no issue exists, please create an issue and ask the maintainers about this first > > #### 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 - 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 - [x] 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** - Implemented a modal for template selection with the ability to hide it. - Added a "See More" text option for template page layouts. - Introduced layout switching capability within the templates modal. - **Enhancements** - Updated template list and content components to support modal layout. - Added initial filter state management for template filtering. - **Refactor** - Renamed selectors and actions for clarity and consistency. - Improved logic for determining template forking and filter component behavior. - **Bug Fixes** - Adjusted styles to correctly apply margins in various layouts. - **Documentation** - Updated messages and constants with more accurate terminology. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-27 04:59:33 +00:00
export const showTemplatesModal = (payload: { isOpenFromCanvas: boolean }) => ({
type: ReduxActionTypes.SHOW_TEMPLATES_MODAL,
payload,
});
feat: adds `see more` to canvas starter templates (#29777) ## Description * This PR increases discovery of building blocks, allowing more building blocks to be shown in canvas. * We also refactored the way `add a page from template` functions: now we have updated store structure to reflect from where the modal open was triggered. * This pull request refactors the template styling and adds support for an optional modal layout. It also includes various updates and fixes to the styled components used in the templates feature. #### PR fixes following issue(s) Fixes #29723 > if no issue exists, please create an issue and ask the maintainers about this first > > #### 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 - 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 - [x] 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** - Implemented a modal for template selection with the ability to hide it. - Added a "See More" text option for template page layouts. - Introduced layout switching capability within the templates modal. - **Enhancements** - Updated template list and content components to support modal layout. - Added initial filter state management for template filtering. - **Refactor** - Renamed selectors and actions for clarity and consistency. - Improved logic for determining template forking and filter component behavior. - **Bug Fixes** - Adjusted styles to correctly apply margins in various layouts. - **Documentation** - Updated messages and constants with more accurate terminology. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-27 04:59:33 +00:00
export const hideTemplatesModal = () => ({
type: ReduxActionTypes.HIDE_TEMPLATES_MODAL,
});
export const importTemplateIntoApplication = (
templateId: string,
templateName: string,
pageNames?: string[],
) => ({
type: ReduxActionTypes.IMPORT_TEMPLATE_TO_APPLICATION_INIT,
payload: {
templateId,
templateName,
pageNames,
},
});
fix: starter building blocks on canvas removes existing queries and JS objects (#32629) ## Description <ins>Root cause: </ins> The original intention of the building blocks on canvas was to serve a new user on their very first app. Looking at (good) usage of this feature, we turned it on for all pages on all apps. Now, an experienced user don't always start with UI and thats when we hit this issue. Additionally, this was a tech debt we had to repay and this PR takes that opportunity to get rid of hack of using `add a page from template` for this feature and uses proper PIE based API to support his. Fixes #32573 _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.Templates" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8797225643> > Commit: 5f7f0fd094284faf67338412a57ef4757eb70af8 > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8797225643&attempt=1" target="_blank">Click 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** - Introduced functionality for importing starter building blocks into applications, including layout positioning and action triggers upon successful import. - Added new actions and selectors in Redux for managing current forking building block names. - **Refactor** - Updated the handling of template names and constants for better consistency and use within the app. - Simplified event handling and variable naming in several components for improved code clarity and performance. - **Bug Fixes** - Adjusted analytics and event data handling to ensure accurate tracking and functionality. - **Tests** - Updated Cypress E2E tests to reflect changes in functionality and removed outdated test cases. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-04-23 10:35:19 +00:00
export const setCurrentForkingBuildingBlockName = (
buildingBlockName: string,
) => ({
type: ReduxActionTypes.SET_CURRENT_FORKING_BUILDING_BLOCK_NAME,
payload: buildingBlockName,
});
export const getTemplateFilters = () => ({
type: ReduxActionTypes.GET_TEMPLATE_FILTERS_INIT,
});
export const importTemplateIntoApplicationViaOnboardingFlow = (
templateId: string,
templateName: string,
pageNames: string[],
applicationId: string,
workspaceId: string,
) => ({
type: ReduxActionTypes.IMPORT_TEMPLATE_TO_APPLICATION_ONBOARDING_FLOW,
payload: {
templateId,
templateName,
pageNames,
applicationId,
workspaceId,
},
});
fix: update template item to show loading indicator on selected template only (#29252) ## Description This PR addresses the issue where the loading indicator is erroneously triggered for all template cards when a user attempts to fork a single template. The proposed changes in this PR ensure that the loading indicator is appropriately tied to the specific template selected by the user. By isolating the indicator to the clicked template, we enhance the user experience and eliminate any confusion related to the forking process. #### PR fixes following issue(s) Fixes #29135 #### Media #### Type of change > Please delete options that are not relevant. - Bug fix (non-breaking change which fixes an issue) ## 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 - [x] 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** - Implemented a new state management feature to track active template operations, enhancing the user experience during template import and forking processes. - Introduced a new button state to prevent conflicting operations, ensuring a smoother template handling experience. - **Enhancements** - Improved the visual feedback on the template interface with updated button states to reflect ongoing operations. - **Bug Fixes** - Resolved an issue where users could initiate multiple conflicting template operations simultaneously. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Rahul Barwal <rahul.barwal@appsmith.com>
2023-12-11 10:12:29 +00:00
export const setActiveLoadingTemplateId = (templateId: string) => ({
type: ReduxActionTypes.SET_ACTIVE_LOADING_TEMPLATE_ID,
payload: templateId,
});