-
Notifications
You must be signed in to change notification settings - Fork 0
fix: prevent duplicate task IDs in Kanban columns #33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: prevent duplicate task IDs in Kanban columns #33
Conversation
Root Cause: - Tasks were being added to column.taskIds arrays without checking for duplicates - Multiple sync operations or edge cases could result in the same task ID appearing multiple times - React requires unique keys, causing "Encountered two children with the same key" errors Changes: 1. syncFromGitHub: Check if task.id already exists before adding to column 2. addTask: Check for duplicates when creating new tasks 3. addTaskFromActionItem: Check for duplicates when adding from action items 4. restoreTask: Check for duplicates when restoring from archive 5. bulkMove: Filter out duplicates when moving multiple tasks 6. onRehydrateStorage: Automatic deduplication on localStorage hydration Impact: - Eliminates React duplicate key warnings - Prevents UI rendering issues - Maintains data integrity across sync operations - Automatic cleanup of existing duplicates on app load
Replaced static cards with creative, engaging notification UI:
New Features:
- Floating notification badge in top-right corner
- Auto-expands when new items arrive
- Pulse animation and bounce effect for new opportunities
- Toast notifications: "🎉 New opportunities ready!"
- Gradient cards with hover effects
- Click-to-expand panel with smooth animations
- Auto-dismissible "Fresh opportunities!" banner
- Backdrop overlay when expanded
Design Improvements:
- More space-efficient (removed from main content area)
- Eye-catching animations draw attention to new items
- Playful messaging ("Fresh opportunities ready!")
- Better mobile responsiveness
- Cleaner dashboard layout
Technical:
- Created QuickWinsNotifier component
- Tracks previous item count to detect new arrivals
- Smooth scale and opacity transitions
- Ring effects for new items indicator
- Automatic expansion after toast notification
User Experience:
- Non-intrusive when collapsed
- Engaging animations when items update
- Quick access without leaving dashboard
- Visual feedback for all states (loading, error, success)
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Caution Review failedThe pull request is closed. WalkthroughThis PR introduces a new QuickWinsNotifier component to the dashboard, replacing QuickWinsCounters, and adds deduplication logic to the kanban store to prevent duplicate task IDs when adding or moving tasks into columns. Changes
Sequence DiagramsequenceDiagram
participant User
participant Dashboard as Dashboard Page
participant Notifier as QuickWinsNotifier
participant Store as Quick Wins Store
Dashboard->>Notifier: Mount component
Notifier->>Store: fetchGoodIssues()
Notifier->>Store: fetchEasyFixes()
Store-->>Notifier: Loading state
Note over Notifier: Fetch in progress
Store-->>Notifier: Data loaded
alt New items detected
Notifier->>User: Show toast notification
Note over Notifier: totalCount increased
rect rgb(200, 220, 255)
Notifier->>Notifier: Wait 500ms
Notifier->>Notifier: Expand panel
Notifier->>Notifier: Start pulse animation (3s)
end
end
User->>Notifier: Click to expand/dismiss
alt Panel expanded
Notifier->>Notifier: Display Good First Issues section
Notifier->>Notifier: Display Easy Fixes section
Note over Notifier: Show per-section loading/error states
end
User->>Notifier: Click "View All Quick Wins"
Notifier->>Dashboard: Navigate to /quick-wins
User->>Notifier: Click overlay
Notifier->>Notifier: Close panel
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes
Possibly related PRs
Poem
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (3)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Root Cause:
Changes:
Impact:
Summary by CodeRabbit
Release Notes
New Features
Bug Fixes
✏️ Tip: You can customize this high-level summary in your review settings.