"use client" import { useState } from "react" import { EmailList } from "./email-list" import { MessageListContainer } from "./message-list-container" import { MessageView } from "./message-view" import { SendDialog } from "./send-dialog" import { cn } from "@/lib/utils" import { useCopy } from "@/hooks/use-copy" import { useSendPermission } from "@/hooks/use-send-permission" import { Copy } from "lucide-react" interface Email { id: string address: string } export function ThreeColumnLayout() { const [selectedEmail, setSelectedEmail] = useState(null) const [selectedMessageId, setSelectedMessageId] = useState(null) const [selectedMessageType, setSelectedMessageType] = useState<'received' | 'sent'>('received') const [refreshTrigger, setRefreshTrigger] = useState(0) const { copyToClipboard } = useCopy() const { canSend: canSendEmails } = useSendPermission() const columnClass = "border-2 border-primary/20 bg-background rounded-lg overflow-hidden flex flex-col" const headerClass = "p-2 border-b-2 border-primary/20 flex items-center justify-between shrink-0" const titleClass = "text-sm font-bold px-2 w-full overflow-hidden" // 移动端视图逻辑 const getMobileView = () => { if (selectedMessageId) return "message" if (selectedEmail) return "emails" return "list" } const mobileView = getMobileView() const copyEmailAddress = () => { copyToClipboard(selectedEmail?.address || "") } const handleMessageSelect = (messageId: string | null, messageType: 'received' | 'sent' = 'received') => { setSelectedMessageId(messageId) setSelectedMessageType(messageType) } const handleSendSuccess = () => { setRefreshTrigger(prev => prev + 1) } return (
{/* 桌面端三栏布局 */}

我的邮箱

{ setSelectedEmail(email) setSelectedMessageId(null) }} selectedEmailId={selectedEmail?.id} />

{selectedEmail ? (
{selectedEmail.address}
{selectedEmail && canSendEmails && ( )}
) : ( "选择邮箱查看消息" )}

{selectedEmail && (
)}

{selectedMessageId ? "邮件内容" : "选择邮件查看详情"}

{selectedEmail && selectedMessageId && (
setSelectedMessageId(null)} />
)}
{/* 移动端单栏布局 */}
{mobileView === "list" && ( <>

我的邮箱

{ setSelectedEmail(email) }} selectedEmailId={selectedEmail?.id} />
)} {mobileView === "emails" && selectedEmail && (
{selectedEmail.address}
{canSendEmails && ( )}
)} {mobileView === "message" && selectedEmail && selectedMessageId && (
邮件内容
setSelectedMessageId(null)} />
)}
) }