Skip to content

fix(events): replace duplicate Pencil icon on RSVP Questions dropdown item - #229

Draft
dccakes wants to merge 2 commits into
mainfrom
claude/sharp-feynman-sjjgdj
Draft

dccakes wants to merge 2 commits into
mainfrom
claude/sharp-feynman-sjjgdj

Conversation

@dccakes

@dccakes dccakes commented Aug 1, 2026

Copy link
Copy Markdown
Owner

📝 TLDR

Replace the duplicate Pencil icon on the "RSVP Questions" item in the event card actions dropdown with a semantically correct ClipboardList icon.

📝 Description

In the event card dropdown menu, both "RSVP Questions" and "Edit" used the identical Pencil icon — making them visually indistinguishable at a glance. Users relying on icons to scan menus (a common pattern) had no way to tell the two actions apart without reading the labels.

This Change

  • Imports ClipboardList from lucide-react alongside the existing imports
  • Replaces the Pencil icon on the "RSVP Questions" dropdown item with ClipboardList
  • "Edit" retains Pencil (correct semantic — editing event details)
  • "Delete" retains Trash2 (correct semantic)
  • ClipboardList clearly communicates "a form / list of questions" which matches the RSVP Questions dialog it opens

Daily Product Improvement

Summary

Replaced duplicate Pencil icon on the "RSVP Questions" dropdown item in EventCard with ClipboardList so the two actions — "RSVP Questions" and "Edit" — are visually distinct.

Recommendations Reviewed

  • Area: src/app/(authenicated)/events/_components/event-card.tsx
    Issue: "RSVP Questions" and "Edit" both use the Pencil icon in the actions dropdown, making them visually indistinguishable
    Recommendation: Replace "RSVP Questions" icon with ClipboardList
    Type: UX/UI
    Priority: Medium
    Effort: Small

  • Area: src/app/(authenicated)/events/_components/events-page-client.tsx
    Issue: sortedEvents is computed inline in the render body without useMemo
    Recommendation: Wrap with useMemo([events]) to avoid unnecessary re-sorts
    Type: Frontend cleanup
    Priority: Low
    Effort: Small

  • Area: src/app/(authenicated)/events/_components/events-page-client.tsx
    Issue: Client-side loading branch (if (isLoading && initialEvents.length === 0)) is dead code — isLoading is always false when initialData is provided in react-query v5
    Recommendation: Remove the unreachable branch
    Type: Frontend cleanup
    Priority: Low
    Effort: Small

  • Area: src/components/guest-list/guests-view.tsx
    Issue: 999-line component handles sorting, filtering, deletion, RSVP editing, household management, and multiple view modes — hard to maintain and test
    Recommendation: Split into focused sub-components and custom hooks
    Type: Frontend cleanup
    Priority: Medium
    Effort: Large

  • Area: src/app/layout.tsx
    Issue: Two toast systems mounted simultaneously: sonner Toaster and shadcn Radix Toaster, producing inconsistent notification stacks
    Recommendation: Standardise on sonner and remove the shadcn Toaster
    Type: Frontend cleanup
    Priority: Medium
    Effort: Medium

  • Area: src/server/domains/wedding/
    Issue: Data model hardcodes brideFirstName / groomFirstName, excluding same-sex and non-binary couples
    Recommendation: Migrate to neutral partner1FirstName / partner2FirstName and update Settings UI labels
    Type: Product flow
    Priority: High
    Effort: Large

  • Area: src/app/old_dashboard/, src/components/old_dashboard/
    Issue: Legacy dashboard is still accessible at /old_dashboard, uses the old @/ import alias and AWS S3 storage — dead code that confuses contributors
    Recommendation: Remove both directories after confirming no active references
    Type: Frontend cleanup
    Priority: Medium
    Effort: Medium

Selected Improvement

Fix duplicate Pencil icon in the EventCard actions dropdown — replace with ClipboardList for the "RSVP Questions" item.

Why This Was Selected

Both actions in the dropdown used identical icons, making the menu impossible to scan without reading labels. This is a common UX affordance — icons should be meaningfully distinct. The fix is two lines, zero risk, and immediately improves clarity for every user of the Events page.

Changes Made

  • Added ClipboardList to the lucide-react import in event-card.tsx
  • Replaced <Pencil> with <ClipboardList> on the "RSVP Questions" DropdownMenuItem

Files Changed

  • src/app/(authenicated)/events/_components/event-card.tsx

Verification

  • Diff reviewed — only the two intended lines changed
  • ClipboardList is a standard, stable lucide-react export used consistently elsewhere in the codebase
  • No behavioral changes — only the icon rendered in the dropdown menu changes

Future Recommendations

  • Recommendation: Extract sortedEvents into useMemo in events-page-client.tsx
    Priority: Low | Effort: Small | Reason not included: Minimal practical impact with a typical number of events; separate, unrelated change | Should become GitHub issue: No

  • Recommendation: Remove dead client-side loading branch in events-page-client.tsx
    Priority: Low | Effort: Small | Reason not included: Dead code cleanup is safe but out of scope for a UX-focused daily run | Should become GitHub issue: No

  • Recommendation: Split guests-view.tsx (999 lines) into focused sub-components and hooks
    Priority: Medium | Effort: Large | Reason not included: Large refactor requiring thorough testing of all guest list interactions | Should become GitHub issue: Yes

  • Recommendation: Consolidate to a single toast system (sonner only, remove shadcn Toaster)
    Priority: Medium | Effort: Medium | Reason not included: Requires auditing all useToast call sites; cross-cutting change | Should become GitHub issue: No

  • Recommendation: Migrate wedding partner data model from gendered fields to neutral names
    Priority: High | Effort: Large | Reason not included: Requires a Prisma schema migration, data backfill, and Settings UI update; needs product input | Should become GitHub issue: Yes

  • Recommendation: Remove src/app/old_dashboard/ and src/components/old_dashboard/ dead code
    Priority: Medium | Effort: Medium | Reason not included: Needs confirmation of zero references before deletion | Should become GitHub issue: No

GitHub Issues Created or Proposed

Two issues are warranted for follow-up:

  1. [Guest List] Split guests-view.tsx into focused components — 999-line file, high maintenance cost, Medium priority, Large effort
  2. [Settings] Migrate gendered partner fields to neutral names — excludes same-sex/non-binary couples, High priority, Large effort; needs product/design input and a schema migration

Generated by Claude Code

… item

RSVP Questions and Edit both used the Pencil icon in the event actions
dropdown, making them visually indistinguishable. Replace the RSVP
Questions item with ClipboardList for clear semantic differentiation.

Co-Authored-By: AgenticDiego <noreply@carvallo.io>
@vercel

vercel Bot commented Aug 1, 2026 •

Copy link
Copy Markdown
Contributor

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

Project Deployment Actions Updated (UTC)
scv Error Error Aug 1, 2026 3:20pm

…atter

Co-Authored-By: AgenticDiego <noreply@carvallo.io>
@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Jest Test Coverage

Coverage Summary

Lines Statements Branches Functions
Coverage: 81%
81.71% (35137/42998) 82.92% (3734/4503) 68.04% (1037/1524)

This branch had an error being deployed

1 failed deployment
Preview — 3cd9c3c6 Deployed Aug 1, 2026 by vercel[bot]
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