-
Notifications
You must be signed in to change notification settings - Fork 5
Claude/sidebar content expansion 01 tht yd31 k kdkp gq4ie9 dj mi #136
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
Claude/sidebar content expansion 01 tht yd31 k kdkp gq4ie9 dj mi #136
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)
…SpdbuZU5vqEWhQ78MZTsSa fix: prevent duplicate task IDs in Kanban columns
Enhanced the moveTask function to be more defensive against duplicates: Changes to moveTask: - Now removes task from ALL columns first (except destination) - Then removes from destination column (in case already there) - Finally adds task at correct position - Guarantees task exists in only one column after move New deduplicateAllColumns Function: - Manual cleanup utility for existing duplicates - Automatically called when KanbanBoard mounts - Logs count of duplicates removed - Returns cleaned columns state Automatic Cleanup: - KanbanBoard now calls deduplicateAllColumns on mount - Cleans up any existing duplicates from localStorage - Runs before user interacts with board Why This Fix Works: 1. Previous fix prevented new duplicates from being created 2. This fix also cleans up existing duplicates 3. moveTask is now defensive - even if duplicates exist, they get removed 4. On every page load, duplicates are automatically cleaned User Impact: - Existing duplicates cleaned up automatically - No more "duplicate key" React errors - Tasks no longer appear in multiple columns - Safe to move tasks back and forth without errors
…SpdbuZU5vqEWhQ78MZTsSa fix: enhanced duplicate prevention with aggressive cleanup
Removed Features: - Smart Column Suggestions banner from KanbanFilters - Removed columnSuggestions usage and Sparkles icon New Task Detail Modal Features: - Three-tab interface: Details, Activity, Time Tracking - Priority-based color coding in header background - Visual progress bar for time tracking - Activity timeline with vertical connector - Enhanced visual hierarchy with better spacing - Sidebar layout for metadata - Due date status badges (Overdue, Due today, Due in Xd) - Large modal (max-w-4xl) for better content display UI/UX Improvements: - Color-coded priority indicators with icons - Enhanced header with priority background - Better organized tabs with icons and badges - Activity count badge on Activity tab - Progress percentage and visual bar on Time Tracking tab - Empty states for tabs without data - Cleaner footer with task ID - Better button placement and hierarchy - Improved confirmation message on delete Technical Additions: - Created Progress component (ui/progress.tsx) - Priority config system with icon, color, bg, border - Time progress calculation - Due date status calculation with color coding - Format date functions (full and short) - Tab state management - Better TypeScript typing throughout Layout Changes: - Modal padding removed, sections have their own padding - Header has colored background based on priority - Content area is scrollable with flex layout - Footer is fixed at bottom - Grid layout for details section (2/3 + 1/3) - Better responsive design considerations
…SpdbuZU5vqEWhQ78MZTsSa feat: removed Smart Column Suggestions and redesigned task detail modal
Major Features: 1. Detail Side Panel Enhancements: - Add quick actions (Start, Add to Kanban, Close) in panel header - Display comments from GitHub issues/PRs with avatars and timestamps - Add priority selector dropdown (Low, Medium, High, Urgent) - Show action feedback messages (success/error states) - Remove direct GitHub links from titles, add dedicated link icon 2. New Issue Creation: - Add "New Issue" button in page header - Create NewIssueDialog component with form validation - Support title, description, repository, and labels input - Implement Ctrl+N / Cmd+N keyboard shortcut to open modal - Show success state with link to created issue 3. "All" Tab Implementation: - Add new "All" tab showing combined items (assigned, mentions, stale) - Update tab navigation to support 4 tabs instead of 3 - Handle refresh logic for combined data sources - Dynamic itemType detection for QuickActionsMenu 4. GitHub API Client Extensions: - Add getIssueComments() method to fetch issue/PR comments - Add createIssue() method to create new GitHub issues - Support comment pagination and error handling 5. UI/UX Improvements: - Replace title anchor tags with clickable rows - Add ExternalLink icon button for GitHub navigation - Improve click event handling with stopPropagation - Add keyboard shortcut (Ctrl+N / Cmd+N) for new issue creation This update significantly improves the Action Required workflow by providing quick access to issue details, comments, and actions without leaving the page.
- Replace 'any' type casts with proper type checking using 'in' operator - Convert DetailPanelIssue to ActionItem format in Kanban functions - Remove unused getPriorityColor function - Ensure strict TypeScript compliance without suppressing types
- Updated ActionItemsList error state retry button to handle 'all' tab type - When type is 'all', refresh all three data sources (assigned, mentions, stale) - Fixes TypeScript error: Type 'all' is not assignable to refreshData parameter
…18eNM6jPNk4jek4NCCHtjvC feat: enhance Action Required page with comprehensive improvements
- Dynamic content expansion: main content area now automatically adjusts when sidebar is collapsed/expanded - Collapsed sidebar shows user/org initials instead of full logo - Pinned repos remain visible and accessible when sidebar is collapsed with tooltips - Hover flyout menus for Action Required and Quick Wins submenu items when collapsed - Removed "WORKSPACE" label while maintaining group structure - Redesigned bottom user section with horizontal layout (Profile, Settings, Theme, Logout) - Added logout confirmation dialog for better UX - Applied distinctive dark slate background color to sidebar (independent of app theme) - Improved text colors for better visibility on dark sidebar background
- Changed logout confirmation dialog from Turkish to English - Removed user profile avatar/info section above bottom icons - Fixed sidebar background to always use slate-900 (consistent across themes) - Aligned all sidebar icons vertically with fixed width/height (w-5 h-5) - Ensured submenu flyouts are properly visible when sidebar is collapsed
…e visibility - Fixed text colors to always use slate-300/100 (white/light) regardless of theme - Changed overflow-x to visible to allow submenu flyouts to be visible when sidebar is collapsed - Updated all hover/active states to use slate colors instead of theme-dependent colors - Fixed SubMenuFlyout background and text colors for better visibility - Ensured all sidebar elements use consistent slate color palette
|
Caution Review failedThe pull request is closed. WalkthroughThis PR introduces a comprehensive feature expansion and UI refinement across the application. It adds an "All" tab for action items with aggregation, a new GitHub Issue dialog, a tabbed Task Detail modal with time tracking, sidebar improvements with tooltips and submenu flyouts, responsive layout adjustments, Quick Wins notifier widget, Kanban deduplication, and GitHub API extensions for issue comments and creation. Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant Dialog as NewIssueDialog
participant API as GitHubAPIClient
participant GitHub as GitHub API
User->>Dialog: Enter repo, title, body, labels
User->>Dialog: Click "Create Issue"
Dialog->>Dialog: Validate inputs
Dialog->>API: Authorize with GitHub token
Dialog->>API: createIssue(owner, repo, title, body?, labels?)
API->>GitHub: POST /repos/{owner}/{repo}/issues
GitHub-->>API: Issue created (html_url, number)
API-->>Dialog: { success: true, issue: {...} }
Dialog->>Dialog: Show confirmation with issue link
Dialog->>Dialog: Auto-close after 2 seconds
Dialog-->>User: Redirect or close
sequenceDiagram
participant User
participant Page as ActionRequired Page
participant Store as Action Items Store
participant API as API
User->>Page: Navigate to Action Required
Page->>Store: Load assigned, mentions, stale items
Store->>API: Fetch all three item groups
API-->>Store: Return items for each category
Store->>Store: Aggregate: all = assigned + mentions + stale
Store-->>Page: Provide itemCounts: {assigned, mentions, stale, all}
Page->>Page: Render tabs (All, Assigned, Mentions, Stale)
Page->>Page: Display aggregated All tab with combined items
User->>Page: Click refresh
Page->>Store: Refresh all three groups (batched)
Store->>API: Batch fetch requests
API-->>Store: Updated items
Store-->>Page: Updated counts
Page->>Page: Re-render all tabs
Estimated code review effort🎯 4 (Complex) | ⏱️ ~70 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 (17)
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 |
Summary by CodeRabbit
New Features
Bug Fixes
Improvements
✏️ Tip: You can customize this high-level summary in your review settings.