diff --git a/components/email/EmailSidebar.tsx b/components/email/EmailSidebar.tsx index df70d7dc..3c0eee48 100644 --- a/components/email/EmailSidebar.tsx +++ b/components/email/EmailSidebar.tsx @@ -4,32 +4,24 @@ import React, { useState } from 'react'; import { Inbox, Send, Trash, Archive, Star, File, RefreshCw, Plus, MailOpen, Settings, - ChevronDown, ChevronRight, ChevronUp, Mail, AlertCircle, - MoreVertical, Edit, Trash2, AlertOctagon, Folder + ChevronDown, ChevronRight, Mail } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { cn } from '@/lib/utils'; import { ScrollArea } from '@/components/ui/scroll-area'; import { Badge } from '@/components/ui/badge'; -import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem } from '@/components/ui/dropdown-menu'; -import { toast } from '@/components/ui/use-toast'; interface EmailSidebarProps { currentFolder: string; currentAccount: string; accounts: Array<{ id: string; - name: string; email: string; - color: string; folders: string[]; }>; onFolderChange: (folder: string, accountId: string) => void; onRefresh: () => void; onCompose: () => void; - onAddAccount: () => void; - onEditAccount: (accountId: string) => void; - onDeleteAccount: (accountId: string) => void; isLoading: boolean; } @@ -40,9 +32,6 @@ export default function EmailSidebar({ onFolderChange, onRefresh, onCompose, - onAddAccount, - onEditAccount, - onDeleteAccount, isLoading }: EmailSidebarProps) { const [showAccounts, setShowAccounts] = useState(true); @@ -52,26 +41,42 @@ export default function EmailSidebar({ const getFolderIcon = (folder: string) => { const folderLower = folder.toLowerCase(); - if (folderLower.includes('inbox')) { - return ; - } else if (folderLower.includes('sent')) { - return ; - } else if (folderLower.includes('trash')) { - return ; - } else if (folderLower.includes('archive')) { - return ; - } else if (folderLower.includes('draft')) { - return ; - } else if (folderLower.includes('spam') || folderLower.includes('junk')) { - return ; - } else { - return ; + switch (folderLower) { + case 'inbox': + return ; + case 'sent': + case 'sent items': + return ; + case 'drafts': + return ; + case 'trash': + case 'deleted': + case 'bin': + return ; + case 'archive': + case 'archived': + return ; + case 'starred': + case 'important': + return ; + default: + return ; } }; - // Helper to format folder names - const formatFolderName = (folder: string) => { - return folder.charAt(0).toUpperCase() + folder.slice(1).toLowerCase(); + // Group folders into standard and custom + const getStandardFolders = (folders: string[]) => { + const standardFolders = ['INBOX', 'Sent', 'Drafts', 'Trash', 'Archive', 'Junk']; + return standardFolders.filter(f => + folders.includes(f) || folders.some(folder => folder.toLowerCase() === f.toLowerCase()) + ); + }; + + const getCustomFolders = (folders: string[]) => { + const standardFolders = ['INBOX', 'Sent', 'Drafts', 'Trash', 'Archive', 'Junk']; + return folders.filter(f => + !standardFolders.some(sf => sf.toLowerCase() === f.toLowerCase()) + ); }; const handleAccountClick = (accountId: string) => { @@ -97,26 +102,16 @@ export default function EmailSidebar({ {/* Accounts header with toggle */}
Accounts -
- - -
+
{/* Accounts list */} @@ -125,73 +120,66 @@ export default function EmailSidebar({ {accounts.map((account) => (
{/* Account button */} -
handleAccountClick(account.id)} > -
- {account.name} - - {/* More options button (⋮) */} - {account.id !== 'loading-account' && ( - - - - - - onEditAccount(account.id)}> - Edit - - onDeleteAccount(account.id)}> - Delete - - - +
+ + {account.email} +
+ {expandedAccount === account.id ? ( + + ) : ( + )} - - {/* Expand/collapse arrow */} - {account.id !== 'loading-account' && ( - - )} -
+ {/* Account folders - shown when account is expanded */} - {expandedAccount === account.id && account.folders && account.folders.length > 0 && ( -
- {account.folders.map((folder) => ( + {expandedAccount === account.id && ( +
+ {getStandardFolders(account.folders).map((folder) => ( ))} + + {/* Custom folders */} + {getCustomFolders(account.folders).map(folder => ( + + ))}
)}