diff --git a/frontend/src/components/EmailDetail.test.tsx b/frontend/src/components/EmailDetail.test.tsx index db2b617b6..a1e72d9c6 100644 --- a/frontend/src/components/EmailDetail.test.tsx +++ b/frontend/src/components/EmailDetail.test.tsx @@ -50,6 +50,10 @@ vi.mock("lucide-react", () => ({ RefreshCw: () => , Info: () => , Loader2: () => , + Users: () => , + Paperclip: () => , + Calendar: () => , + MessagesSquare: () => , X: () => , })); diff --git a/frontend/src/components/EmailDetail.tsx b/frontend/src/components/EmailDetail.tsx index e634a896c..cc322bb48 100644 --- a/frontend/src/components/EmailDetail.tsx +++ b/frontend/src/components/EmailDetail.tsx @@ -8,7 +8,7 @@ import { Checkbox } from "@/components/ui/checkbox"; import { Button } from "@/components/ui/button"; import { Textarea } from "@/components/ui/textarea"; import { Input } from "@/components/ui/input"; -import { Loader2, MessagesSquare } from "lucide-react"; +import { Loader2, MessagesSquare, Users, Paperclip, Calendar } from "lucide-react"; import { DecisionPointCard } from "@/components/DecisionPointCard"; import { SourceDrawer } from "@/components/SourceDrawer"; import { @@ -29,6 +29,9 @@ import { type EmailData = ThreadEmailData & { requires_reply?: boolean; schedule_conflict?: boolean; + attachments?: Array<{ id: string; name: string; size: string }>; + participants?: Array<{ name: string; email: string; role: string }>; + meeting_proposals?: Array<{ id: string; title: string; time: string }>; }; interface LlmData { summary: string; @@ -649,8 +652,9 @@ export const EmailDetail = memo(function EmailDetail({ emailId, actionCommand = - -
+
+ +
+ +
{ + const browser = await chromium.launch({ headless: true }); + const page = await browser.newPage(); + try { + // Navigate straight to a known layout component containing EmailDetail if possible, or force the inbox view + await page.goto('http://localhost:3000', { waitUntil: 'networkidle' }); + + // Click the "메일" button in the GNB to go to the inbox + const mailTab = page.locator('button').filter({ hasText: '메일' }).first(); + if (await mailTab.isVisible()) { + await mailTab.click(); + await page.waitForTimeout(1000); + } + + // Attempt to click the first email in the list + const firstEmail = page.locator('.group').first(); + if (await firstEmail.isVisible()) { + await firstEmail.click(); + } + + // Wait for the EmailDetail side panel elements + await page.waitForTimeout(1500); // Give it time to render the layout + await page.screenshot({ path: '/home/jules/verification/email_detail_panel.png' }); + console.log("Screenshot saved"); + } catch (err) { + console.error("Error:", err); + } finally { + await browser.close(); + } +})();