Skip to content

chore: Docs in Plugin Action Toolbar#36881

Merged
hetunandu merged 1 commit intoreleasefrom
chore/add-docs-menu-tem
Oct 16, 2024
Merged

chore: Docs in Plugin Action Toolbar#36881
hetunandu merged 1 commit intoreleasefrom
chore/add-docs-menu-tem

Conversation

@hetunandu
Copy link
Member

@hetunandu hetunandu commented Oct 15, 2024

Description

Adds docs inside the Plugin Action Toolbar

Fixes #35533

Automation

/ok-to-test tags="@tag.IDE"

🔍 Cypress test results

Tip

🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/11346174657
Commit: eca5320
Cypress dashboard.
Tags: @tag.IDE
Spec:


Tue, 15 Oct 2024 13:29:36 UTC

Communication

Should the DevRel and Marketing teams inform users about this change?

  • Yes
  • No

Summary by CodeRabbit

  • New Features

    • Introduced a DocsMenuItem for easy access to plugin documentation.
    • Added new components: Copy, Delete, Move, PageMenuItem, and ToolbarMenu to enhance user interaction with plugin actions.
  • Bug Fixes

    • Replaced outdated AppPluginActionMenu with ToolbarMenu for improved functionality.
  • Chores

    • Removed the obsolete AppPluginActionMenu component to streamline the codebase.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 15, 2024

Walkthrough

This pull request introduces several new components and modifies existing ones within the Plugin Action Editor. A new DocsMenuItem component has been added to provide documentation links in the toolbar. The AppPluginActionMenu component has been removed and replaced with a new ToolbarMenu, which includes additional components for copying, deleting, and moving actions. These changes enhance the functionality and organization of the toolbar related to plugin actions.

Changes

File Path Change Summary
app/client/src/PluginActionEditor/components/PluginActionToolbar/components/DocsMenuItem.tsx New component DocsMenuItem added to render documentation links.
app/client/src/PluginActionEditor/index.ts New export statement for DocsMenuItem.
app/client/src/ce/pages/Editor/AppPluginActionEditor/components/AppPluginActionToolbar.tsx Updated import to use ToolbarMenu instead of AppPluginActionMenu.
app/client/src/ce/pages/Editor/AppPluginActionEditor/components/PluginActionMoreActions.tsx Component AppPluginActionMenu removed.
app/client/src/ce/pages/Editor/AppPluginActionEditor/components/ToolbarMenu/Copy.tsx New component Copy added for copying actions.
app/client/src/ce/pages/Editor/AppPluginActionEditor/components/ToolbarMenu/Delete.tsx New component Delete added for handling delete actions.
app/client/src/ce/pages/Editor/AppPluginActionEditor/components/ToolbarMenu/Move.tsx New component Move added for moving actions between pages.
app/client/src/ce/pages/Editor/AppPluginActionEditor/components/ToolbarMenu/PageMenuItem.tsx New component PageMenuItem added for rendering page menu items.
app/client/src/ce/pages/Editor/AppPluginActionEditor/components/ToolbarMenu/ToolbarMenu.tsx New component ToolbarMenu added for managing user actions.
app/client/src/ce/pages/Editor/AppPluginActionEditor/components/ToolbarMenu/index.ts New export statement for ToolbarMenu.

Assessment against linked issues

Objective Addressed Explanation
Move docs inside overflow menu (#35533)

Possibly related PRs

Suggested labels

IDE Product, Task, skip-changelog, IDE Pod, ok-to-test

Suggested reviewers

  • ankitakinger

🌟 In the realm of code, new features gleam,
A toolbar transformed, like a bright morning beam.
Docs now reside in a menu so neat,
With actions to copy, delete, and repeat.
A dance of components, all in their place,
Enhancing our tools, with elegance and grace! 🌟


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?

❤️ Share
🪧 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>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in 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 gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

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 using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@hetunandu hetunandu added the ok-to-test Required label for CI label Oct 15, 2024
@github-actions github-actions bot added IDE Navigation Issues/feature requests related to IDE navigation, and context switching IDE Pod Issues that new developers face while exploring the IDE IDE Product Issues related to the IDE Product Task A simple Todo labels Oct 15, 2024
@github-actions github-actions bot added the skip-changelog Adding this label to a PR prevents it from being listed in the changelog label Oct 15, 2024
@github-actions
Copy link

⚠️ Cyclic Dependency Check:

This PR has increased the number of cyclic dependencies by 1, when compared with the release branch.

Refer this document to identify the cyclic dependencies introduced by this PR.

@hetunandu hetunandu added ok-to-test Required label for CI and removed ok-to-test Required label for CI labels Oct 15, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Outside diff range and nitpick comments (6)
app/client/src/PluginActionEditor/components/PluginActionToolbar/components/DocsMenuItem.tsx (2)

8-11: Excellent use of hooks, students! But let's add a small improvement.

Your use of usePluginActionContext and useCallback is commendable. However, let's make sure we're being thorough with our dependencies.

Consider adding plugin.documentationLink and plugin.name to the dependency array of useCallback:

 const onDocsClick = useCallback(() => {
   openDoc(DocsLink.QUERY, plugin.documentationLink, plugin.name);
-}, [plugin]);
+}, [plugin.documentationLink, plugin.name]);

This ensures the callback is only recreated when these specific properties change, not the entire plugin object.


17-26: Wonderful job on rendering the MenuItem, students! Let's add a small enhancement.

Your use of the MenuItem component is correct, and I'm pleased to see you've included a className for testing purposes. The localization implementation is also top-notch!

To make our component more accessible, let's add an aria-label to the MenuItem. This will help screen readers better understand the purpose of this menu item:

 <MenuItem
   className="t--datasource-documentation-link"
   onSelect={onDocsClick}
   startIcon="book-line"
+  aria-label={`Open ${plugin.name} documentation`}
 >
   {createMessage(DOCUMENTATION)}
 </MenuItem>

This addition will earn you extra credit in web accessibility!

app/client/src/ce/pages/Editor/AppPluginActionEditor/components/ToolbarMenu/Delete.tsx (1)

14-20: Your handleSelect function is well-crafted, but there's room for improvement!

The use of useCallback and the logic for handling both initial delete and confirmation are excellent. However, let's make it even better:

Consider extracting the logic inside handleSelect into a separate function for improved readability. Here's an example:

const performDeleteAction = useCallback(() => {
  confirmDelete ? handleDeleteClick({}) : setConfirmDelete(true);
}, [confirmDelete, handleDeleteClick]);

const handleSelect = useCallback(
  (e?: Event) => {
    e?.preventDefault();
    performDeleteAction();
  },
  [performDeleteAction]
);

This separation of concerns will make your code even more clear and maintainable. Keep up the great work!

app/client/src/ce/pages/Editor/AppPluginActionEditor/components/ToolbarMenu/ToolbarMenu.tsx (2)

18-29: Let's add some helpful notes to our code, shall we?

Class, your code is looking good, but remember: clear explanations help everyone understand better. Let's add some comments to explain what these permission calculations mean. It's like adding labels to our science experiments!

Here's a little homework for you:

 export const ToolbarMenu = () => {
   const { action } = usePluginActionContext();
 
   const isFeatureEnabled = useFeatureFlag(FEATURE_FLAG.license_gac_enabled);
+  // Check if the user has permission to manage actions
   const isChangePermitted = getHasManageActionPermission(
     isFeatureEnabled,
     action.userPermissions,
   );
+  // Check if the user has permission to delete actions
   const isDeletePermitted = getHasDeleteActionPermission(
     isFeatureEnabled,
     action?.userPermissions,
   );

31-44: Excellent job on your component structure, students!

Your render logic is as clear as a well-drawn diagram on our classroom board. I'm particularly impressed with how you've used conditional rendering to show different options based on user permissions. It's like choosing the right tools for each experiment!

To make it even clearer, let's add a small improvement:

 return (
   <>
     <ConvertToModuleCTA />
     {isChangePermitted && (
       <>
         <Copy />
         <Move />
       </>
     )}
     <Docs />
     <MenuSeparator />
-    {isDeletePermitted && <Delete />}
+    {isDeletePermitted && (
+      <Delete />
+    )}
   </>
 );

This change makes the Delete component rendering consistent with the other conditional renders. Remember, consistency is key in both code and classroom rules!

app/client/src/ce/pages/Editor/AppPluginActionEditor/components/ToolbarMenu/Move.tsx (1)

39-61: Your render function gets an A+!

Class, gather around and observe this exemplary render function. Notice how it elegantly handles both cases: when we have pages to move to, and when we don't. The use of the map function to create our menu items is particularly praiseworthy. And don't forget the importance of that key prop – it's crucial for React's reconciliation process!

One small suggestion for extra credit: Consider adding a more descriptive message when there are no pages available. For example:

<MenuItem key="no-pages">No other pages available for move</MenuItem>

This would provide clearer feedback to our users. What do you think?

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 3032adc and eca5320.

📒 Files selected for processing (10)
  • app/client/src/PluginActionEditor/components/PluginActionToolbar/components/DocsMenuItem.tsx (1 hunks)
  • app/client/src/PluginActionEditor/index.ts (1 hunks)
  • app/client/src/ce/pages/Editor/AppPluginActionEditor/components/AppPluginActionToolbar.tsx (1 hunks)
  • app/client/src/ce/pages/Editor/AppPluginActionEditor/components/PluginActionMoreActions.tsx (0 hunks)
  • app/client/src/ce/pages/Editor/AppPluginActionEditor/components/ToolbarMenu/Copy.tsx (1 hunks)
  • app/client/src/ce/pages/Editor/AppPluginActionEditor/components/ToolbarMenu/Delete.tsx (1 hunks)
  • app/client/src/ce/pages/Editor/AppPluginActionEditor/components/ToolbarMenu/Move.tsx (1 hunks)
  • app/client/src/ce/pages/Editor/AppPluginActionEditor/components/ToolbarMenu/PageMenuItem.tsx (1 hunks)
  • app/client/src/ce/pages/Editor/AppPluginActionEditor/components/ToolbarMenu/ToolbarMenu.tsx (1 hunks)
  • app/client/src/ce/pages/Editor/AppPluginActionEditor/components/ToolbarMenu/index.ts (1 hunks)
💤 Files with no reviewable changes (1)
  • app/client/src/ce/pages/Editor/AppPluginActionEditor/components/PluginActionMoreActions.tsx
✅ Files skipped from review due to trivial changes (1)
  • app/client/src/ce/pages/Editor/AppPluginActionEditor/components/ToolbarMenu/index.ts
🧰 Additional context used
🔇 Additional comments (18)
app/client/src/ce/pages/Editor/AppPluginActionEditor/components/AppPluginActionToolbar.tsx (3)

Line range hint 1-10: Class, let's summarize what we've learned today!

Excellent work on this assignment! You've successfully updated the AppPluginActionToolbar component to use the new ToolbarMenu. This change aligns perfectly with our lesson plan of moving documentation into the overflow menu.

Here's a quick recap of what we've covered:

  1. We've updated our import statement to bring in the new ToolbarMenu.
  2. We've integrated this new menu into our PluginActionToolbar.

These changes should improve the organization of our toolbar and make it easier for users to access documentation. Well done!

Remember, class, always double-check your work. Make sure the new ToolbarMenu component includes all the necessary documentation links, and that it's functioning as expected in the overflow menu.


3-3: Class, let's examine this import statement change.

Good job updating the import statement! This change aligns well with our lesson plan of moving documentation into the overflow menu. However, let's make sure we've done our homework.

To ensure we've covered all our bases, let's take a peek at the ToolbarMenu component:


6-6: Now, class, let's turn our attention to this component rendering.

Excellent work updating the menuContent prop! You've successfully integrated our new ToolbarMenu component. This change is like solving a math problem correctly - it all adds up!

To ensure we haven't missed any important details, let's check the PluginActionToolbar component's props:

✅ Verification successful

Great job persisting through the challenges! Let's refine our search to ensure we locate every instance of the PluginActionToolbar component. Please run the following script to search within .tsx and .ts files:


Excellent work!

I've verified that the PluginActionToolbar component's menuContent prop correctly accepts the new <ToolbarMenu /> component. Everything looks good, and the change aligns with our component definitions.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the props of the PluginActionToolbar component

# Test: Search for the PluginActionToolbar component definition and its props
ast-grep --lang typescript --pattern 'export const PluginActionToolbar: React.FC<{
  $$$
}> = ($_) => {
  $$$
}'

Length of output: 114


Script:

#!/bin/bash
# Description: Verify all export styles for the PluginActionToolbar component

# Test: Search for both named and default exports of PluginActionToolbar
ast-grep --lang typescript --pattern 'export const PluginActionToolbar: React.FC<{ $$$ }> = ($_ ) => { $$$ }'
ast-grep --lang typescript --pattern 'export default PluginActionToolbar'

Length of output: 187


Script:

#!/bin/bash
# Description: Search for all definitions and usages of PluginActionToolbar component in TypeScript files

# Test: Use ripgrep to find all instances of PluginActionToolbar
rg 'PluginActionToolbar' --type tsx,ts

Length of output: 69


Script:

#!/bin/bash
# Description: Search for all definitions and usages of PluginActionToolbar component in TypeScript files

# Test: Use ripgrep to find all instances of PluginActionToolbar
rg 'PluginActionToolbar' --type tsx --type ts

Length of output: 73


Script:

#!/bin/bash
# Description: Search for all definitions and usages of PluginActionToolbar component in TypeScript files

# Test: Use ripgrep to find all instances of PluginActionToolbar in .tsx and .ts files
rg 'PluginActionToolbar' -g '*.tsx' -g '*.ts'

Length of output: 1481

app/client/src/ce/pages/Editor/AppPluginActionEditor/components/ToolbarMenu/PageMenuItem.tsx (1)

1-3: Well done on your imports, class!

You've shown a good understanding of what's needed for this component. The imports are concise and relevant, demonstrating your ability to keep things tidy and efficient.

app/client/src/PluginActionEditor/index.ts (1)

16-17: Well done, class! This addition is spot on.

I'm pleased to see you've added the export for DocsMenuItem. This new component will certainly help our users access documentation more easily, just as we discussed in our lesson plan (PR objectives). Remember, children, organization is key in coding, and you've done a splendid job placing this new export at the end of the file. Keep up the good work!

app/client/src/PluginActionEditor/components/PluginActionToolbar/components/DocsMenuItem.tsx (2)

1-7: Well done, class! The imports and component declaration look spot on.

You've correctly imported the necessary modules and declared the component using modern React practices. Keep up the good work!


13-15: A gold star for your conditional rendering, class!

Your use of a guard clause to return null when plugin.documentationLink is not available is exemplary. This prevents unnecessary rendering and potential errors. It's like checking if you have all your school supplies before starting your homework!

app/client/src/ce/pages/Editor/AppPluginActionEditor/components/ToolbarMenu/Delete.tsx (2)

1-10: Well done on your imports and component declaration, class!

You've shown a good understanding of organizing your code. The imports are neatly arranged, and you've correctly used the named export for your Delete component. Keep up the good work!


11-12: Excellent use of hooks, students!

Your application of the custom hook useHandleDeleteClick and the useState hook for managing the confirmation state is commendable. This approach ensures a safe deletion process. Keep up this level of thoughtfulness in your code!

app/client/src/ce/pages/Editor/AppPluginActionEditor/components/ToolbarMenu/ToolbarMenu.tsx (2)

1-16: Well done on organizing your imports, class!

Your imports are neatly arranged and properly grouped. It's like seeing a well-organized bookshelf in our classroom library! Keep up the good work in maintaining clean and readable code.


1-45: A gold star for your excellent work, class!

Your ToolbarMenu component is a shining example of how to organize and structure React code. You've successfully added the documentation to the toolbar and implemented the logic for displaying different options based on user permissions. This is exactly what we were aiming for in our project objectives!

Here's a quick recap of our lesson today:

  1. Your imports are well-organized.
  2. You've used hooks effectively to manage state and permissions.
  3. Your render logic is clear and follows best practices.

Remember the small improvements we discussed:

  • Adding comments to explain permission calculations.
  • Keeping the rendering of conditional components consistent.

Overall, this is fantastic work! You've addressed the task of moving documentation into the overflow menu beautifully. Keep up the great coding, and don't forget to apply these lessons in your future projects!

app/client/src/ce/pages/Editor/AppPluginActionEditor/components/ToolbarMenu/Copy.tsx (4)

1-8: Well done on your import statements, class!

I'm pleased to see you've used named imports throughout. This is excellent practice! Named imports not only make your code more readable but also allow for better tree-shaking, which can lead to smaller bundle sizes. Keep up the good work!


10-13: Excellent use of functional components and hooks, students!

Your Copy component is a shining example of modern React practices. By using functional components and hooks like useSelector and usePluginActionContext, you're embracing the latest and greatest in React development. This approach leads to more concise and easier-to-understand code. Keep up this fantastic work!


15-25: A gold star for your copyActionToPage function implementation!

Your use of useCallback here is exemplary. This hook helps optimize performance by memoizing the function, preventing unnecessary re-renders. It's especially useful in this context where the function is passed as a prop to child components.

Remember, class, useCallback is most effective when used in conjunction with React.memo or when passing callbacks to optimized child components that rely on reference equality to prevent unnecessary renders.

Keep up this level of attention to performance optimization!


27-45: Excellent work on your render method, class!

Your use of the MenuSub structure and mapping over menuPages to render PageMenuItem components is very well done. It's clear, concise, and follows React best practices.

I'm particularly impressed by your attention to detail in providing a unique key prop (page.basePageId) when mapping over the pages. This is crucial for React's reconciliation process and helps maintain component state correctly when the list changes.

As a reminder to the class: Always provide unique and stable keys when rendering lists in React. This helps React identify which items have changed, been added, or been removed, and plays a crucial role in maintaining component state and improving performance.

Keep up the excellent work!

app/client/src/ce/pages/Editor/AppPluginActionEditor/components/ToolbarMenu/Move.tsx (3)

1-14: Well done on your imports, class!

I'm pleased to see you've organized your imports neatly. You've brought in all the necessary tools for our lesson on moving actions between pages. Keep up the good work!


16-24: Excellent use of hooks, students!

Your Move component is a shining example of modern React practices. You've wisely used useDispatch and useSelector to interact with our Redux store, and useMemo to optimize our page filtering. It's like you've been paying attention in class!


26-37: A gold star for your callback function!

Your moveActionToPage function is a textbook example of how to use useCallback. You've correctly included all the necessary dependencies in the array. The way you've constructed the payload for the moveActionRequest action shows a deep understanding of our Redux architecture. Keep up this level of work, and you'll be teaching the class soon!

Comment on lines +5 to +8
export const PageMenuItem = (props: {
page: Page;
onSelect: (id: string) => void;
}) => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Let's enhance our type definitions, shall we?

While your current approach is correct, I'd like to see you take it a step further. Consider defining an interface for your props. This will make your code more readable and reusable. Here's how you might do it:

interface PageMenuItemProps {
  page: Page;
  onSelect: (id: string) => void;
}

export const PageMenuItem: React.FC<PageMenuItemProps> = (props) => {
  // ... rest of the component
}

This change will make your code more organized and easier to maintain as your component grows. What do you think about this suggestion?

Comment on lines +9 to +11
const handleOnSelect = useCallback(() => {
props.onSelect(props.page.pageId);
}, [props]);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Good use of useCallback, but let's optimize it further!

I'm pleased to see you're thinking about performance with useCallback. However, we can make it even better. Instead of depending on the entire props object, let's be more specific:

const handleOnSelect = useCallback(() => {
  onSelect(page.pageId);
}, [onSelect, page.pageId]);

This way, the function will only be recreated if onSelect or page.pageId changes, not for any change in the props object. It's like sharpening your pencil to write more precisely!

props.onSelect(props.page.pageId);
}, [props]);

return <MenuItem onSelect={handleOnSelect}>{props.page.pageName}</MenuItem>;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Let's make our menu item more accessible!

Your render method is neat and tidy, which is great! But remember, we want to make sure all our students can use our application. Let's add an aria-label to our MenuItem to improve accessibility:

return (
  <MenuItem 
    onSelect={handleOnSelect} 
    aria-label={`Go to page ${props.page.pageName}`}
  >
    {props.page.pageName}
  </MenuItem>
);

This small addition will help screen reader users understand the purpose of this menu item better. It's like adding a helpful sign to guide everyone to the right page!

Comment on lines +22 to +35
const menuLabel = confirmDelete
? createMessage(CONFIRM_CONTEXT_DELETE)
: createMessage(CONTEXT_DELETE);

return (
<MenuItem
className="t--apiFormDeleteBtn error-menuitem"
onSelect={handleSelect}
startIcon="trash"
>
{menuLabel}
</MenuItem>
);
};
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Your rendering code is looking sharp, but let's add a finishing touch!

The use of createMessage for labels and the dynamic rendering based on confirmDelete state show great attention to detail. However, let's enhance the accessibility of our component:

Add an aria-label to the MenuItem to improve screen reader support. Here's how you can do it:

<MenuItem
  className="t--apiFormDeleteBtn error-menuitem"
  onSelect={handleSelect}
  startIcon="trash"
  aria-label={confirmDelete ? "Confirm delete action" : "Delete action"}
>
  {menuLabel}
</MenuItem>

This small addition will make your component more inclusive and user-friendly. Keep striving for excellence!

@albinAppsmith
Copy link
Contributor

/build-deploy-preview skip-test=true

@github-actions
Copy link

Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/11346401310.
Workflow: On demand build Docker image and deploy preview.
skip-tests: . env: .
PR: 36881.
recreate: .

@albinAppsmith
Copy link
Contributor

@hetunandu Can you add EE Pr for this?

@github-actions
Copy link

Deploy-Preview-URL: https://ce-36881.dp.appsmith.com

{isChangePermitted && (
<>
<Copy />
<Move />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is there a difference in the context menu for plugin action on CE and EE? Asking for understanding why this needs to be inside ce folder.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

IDE Navigation Issues/feature requests related to IDE navigation, and context switching IDE Pod Issues that new developers face while exploring the IDE IDE Product Issues related to the IDE Product ok-to-test Required label for CI skip-changelog Adding this label to a PR prevents it from being listed in the changelog Task A simple Todo

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Task] Move docs inside overflow menu

3 participants