From 4c8dcbfd8d889a90e0a4723ad89975028f422430 Mon Sep 17 00:00:00 2001 From: alma Date: Tue, 15 Apr 2025 19:28:19 +0200 Subject: [PATCH] mail page custum 7 --- app/mail/page.tsx | 280 ++++++++++++++++++++++++++-------------------- 1 file changed, 160 insertions(+), 120 deletions(-) diff --git a/app/mail/page.tsx b/app/mail/page.tsx index 0220fe5..b91fdb8 100644 --- a/app/mail/page.tsx +++ b/app/mail/page.tsx @@ -6,7 +6,7 @@ import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Textarea } from "@/components/ui/textarea"; import { Avatar, AvatarFallback } from "@/components/ui/avatar"; -import { MoreVertical, Settings, Plus as PlusIcon, Trash2, Edit, Mail, Inbox, Send, Star, Trash, Plus, ChevronLeft, ChevronRight, Search, ChevronDown, Folder, ChevronUp } from 'lucide-react'; +import { MoreVertical, Settings, Plus as PlusIcon, Trash2, Edit, Mail, Inbox, Send, Star, Trash, Plus, ChevronLeft, ChevronRight, Search, ChevronDown, Folder, ChevronUp, Reply, Forward, ReplyAll, MoreHorizontal, FolderOpen } from 'lucide-react'; interface Account { id: number; @@ -89,6 +89,7 @@ export default function MailPage() { const [accountsDropdownOpen, setAccountsDropdownOpen] = useState(false); const [foldersDropdownOpen, setFoldersDropdownOpen] = useState(false); const [showAccountActions, setShowAccountActions] = useState(null); + const [showEmailActions, setShowEmailActions] = useState(false); // Mock folders data const folders = [ @@ -380,136 +381,175 @@ export default function MailPage() { {/* Main content */} -
- {/* Header */} -
-
-
-
- - -
+
+ {/* Email list */} +
+
+

+ {currentView === 'starred' ? 'Starred' : currentView} +

+
+ {filteredEmails.length} emails
-
- {/* Email list and detail view */} -
- {/* Email list */} -
-
-

- {currentView === 'starred' ? 'Starred' : currentView} -

-
- {filteredEmails.length} emails -
-
- - {filteredEmails.length > 0 ? ( -
    - {filteredEmails.map(email => ( -
  • handleEmailClick(email.id)} - > -
    -
    -
    -
    - {email.fromName} -
    -
    {formatDate(email.date)}
    -
    -
    -

    {email.subject}

    - -
    -

    - {email.body} -

    -
    -
  • - ))} -
- ) : ( -
- -

No emails in this folder

-
- )} -
- - {/* Email detail view */} - {selectedEmail ? ( -
-
- {getSelectedEmail() && ( - <> -
-
-

{getSelectedEmail()?.subject}

- -
- + {filteredEmails.length > 0 ? ( +
    + {filteredEmails.map(email => ( +
  • handleEmailClick(email.id)} + > +
    +
    - - - {getSelectedEmail()?.fromName.charAt(0)} - - -
    -
    {getSelectedEmail()?.fromName}
    -
    - {getSelectedEmail()?.from} - - {new Date(getSelectedEmail()!.date).toLocaleString([], { dateStyle: 'medium', timeStyle: 'short' })} +
    + {email.fromName} +
    +
    {formatDate(email.date)}
    +
    +
    +

    {email.subject}

    + +
    +

    + {email.body} +

    +
    +
  • + ))} +
+ ) : ( +
+ +

No emails in this folder

+
+ )} +
+ + {/* Email detail view - Always visible */} +
+ {selectedEmail ? ( +
+ {/* Email actions header */} +
+
+ + + +
+
+ + {showEmailActions && ( +
+ + +
+ )} +
+
+ + {/* Email content */} +
+
+ {getSelectedEmail() && ( + <> +
+
+

{getSelectedEmail()?.subject}

+ +
+ +
+ + + {getSelectedEmail()?.fromName.charAt(0)} + + +
+
{getSelectedEmail()?.fromName}
+
+ {getSelectedEmail()?.from} + + {new Date(getSelectedEmail()!.date).toLocaleString([], { dateStyle: 'medium', timeStyle: 'short' })} +
-
- -
-

{getSelectedEmail()?.body}

-
- -
-
- - + +
+

{getSelectedEmail()?.body}

-
- - )} + + )} +
) : ( -
+

No email selected