Skip to content

Conversation

@devin-ai-integration
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot commented Nov 6, 2025

Description

Added a dropdown menu to the Recent projects cards (in the carousel) that matches the functionality already present in the Projects section cards. The dropdown provides quick access to project management actions:

  • Rename Project
  • Clone Project
  • Convert to template / Unmark as template
  • Delete Project

The implementation mirrors the existing ProjectCardPresentation component to ensure UI consistency.

Related Issues

Related to Storybook story: pages-projectspage--creating-project (Pages / ProjectsPage / Creating Project)

Type of Change

  • Bug fix
  • New feature
  • Documentation
  • Refactor
  • Other (please describe):

Changes Made

Modified Files:

  1. square-project-card-presentation.tsx

    • Added dropdown menu UI with three-dot button in top-right corner
    • Added props for dropdown callbacks: onRename, onClone, onToggleTemplate, onDelete, isTemplate
    • Implemented dropdown menu items matching ProjectCardPresentation styling
    • Added proper event handling to prevent card clicks when interacting with dropdown
  2. select-presentation.tsx

    • Updated Recent projects carousel to pass dropdown callbacks to SquareProjectCardPresentation
    • Connected existing handlers (onRenameProject, onCloneProject, etc.) to the recent projects cards

Testing

⚠️ Manual testing required - TypeScript type checking passed, but visual testing in Storybook was not completed due to lint timeouts.

Recommended testing steps:

  1. Run Storybook: bun run storybook in apps/web/client
  2. Navigate to the "Pages / ProjectsPage / Creating Project" story
  3. Hover over Recent projects cards to verify dropdown button appears
  4. Click dropdown button and verify all 4 menu options appear
  5. Verify clicking dropdown/menu items doesn't trigger card click
  6. Compare dropdown styling with Projects section cards for consistency

Human Review Checklist

Please verify:

  • Dropdown menu appears on hover in Recent projects section
  • Three-dot button is positioned correctly (top-right corner)
  • All 4 menu options are visible and functional
  • Dropdown styling matches the Projects section cards exactly
  • Clicking the dropdown button/menu doesn't trigger the card's onClick handler
  • Template projects show "Unmark as template" option instead of "Convert to template"
  • Dropdown positioning works correctly at different screen sizes

Additional Notes

  • The dropdown implementation was copied directly from ProjectCardPresentation to ensure UI consistency
  • Some auto-formatting changes from Prettier are included (import ordering, className ordering)
  • The isTemplate prop is determined by checking for 'template' in project.metadata.tags

Link to Devin run: https://app.devin.ai/sessions/202b2eaabf054572938b39101cf916e3
Requested by: Satya Patel (@saddlepaddle)


Important

Adds a dropdown menu to recent projects cards in SquareProjectCardPresentation for project management actions, ensuring UI consistency with existing project cards.

  • Behavior:
    • Adds dropdown menu to SquareProjectCardPresentation for recent projects cards with options: Rename, Clone, Convert/Unmark as template, Delete.
    • Dropdown menu mirrors ProjectCardPresentation styling for UI consistency.
  • Components:
    • square-project-card-presentation.tsx: Implements dropdown menu with callbacks onRename, onClone, onToggleTemplate, onDelete, and isTemplate prop.
    • select-presentation.tsx: Passes dropdown callbacks to SquareProjectCardPresentation and connects handlers for project actions.
  • Testing:
    • Manual testing required; visual testing in Storybook recommended to verify dropdown appearance and functionality.

This description was created by Ellipsis for 8d004cf. You can customize this summary. It will automatically update as commits are pushed.

- Added dropdown menu with rename, clone, convert to template, and delete options to SquareProjectCardPresentation component
- Updated SelectProjectPresentation to pass dropdown callbacks to recent projects cards
- Matches functionality from ProjectCardPresentation in the Projects section

Co-Authored-By: Satya Patel <satyapatel111@gmail.com>
@devin-ai-integration
Copy link
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@supabase
Copy link

supabase bot commented Nov 6, 2025

This pull request has been ignored for the connected project wowaemfasoptxrdjhilu because there are no changes detected in apps/backend/supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

@vercel
Copy link

vercel bot commented Nov 6, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
web Ready Ready Preview Comment Nov 6, 2025 1:31am
1 Skipped Deployment
Project Deployment Preview Comments Updated (UTC)
docs Skipped Skipped Nov 6, 2025 1:31am

@coderabbitai
Copy link

coderabbitai bot commented Nov 6, 2025

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.


Comment @coderabbitai help to get the list of available commands and usage tips.

<div className="absolute top-3 right-3 z-30 opacity-0 transition-opacity duration-200 group-hover:opacity-100">
<DropdownMenu>
<DropdownMenuTrigger asChild>
<Button
Copy link
Contributor

Choose a reason for hiding this comment

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

Consider adding an aria-label (e.g. aria-label="Project actions") to the dropdown trigger button for better accessibility.

- Replaced crypto.randomUUID() with uuidv4() from uuid package
- Fixes Chromatic CI failure due to crypto not being available in Node environment

Co-Authored-By: Satya Patel <satyapatel111@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant