From 3717d7d4581dae59db1da4a258cd37f715127b1a Mon Sep 17 00:00:00 2001 From: amhsirak Date: Tue, 4 Nov 2025 21:18:18 +0530 Subject: [PATCH] fix: switch to active action data tab on capture --- src/components/run/InterpretationLog.tsx | 41 ++++++++++++++++-------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/src/components/run/InterpretationLog.tsx b/src/components/run/InterpretationLog.tsx index 74c46f4e..05677724 100644 --- a/src/components/run/InterpretationLog.tsx +++ b/src/components/run/InterpretationLog.tsx @@ -354,6 +354,7 @@ export const InterpretationLog: React.FC = ({ isOpen, se useEffect(() => { let shouldOpenDrawer = false; + let switchToListTab = false; let switchToTextTab = false; let switchToScreenshotTab = false; @@ -362,6 +363,7 @@ export const InterpretationLog: React.FC = ({ isOpen, se if (captureListData.length > lastListDataLength.current) { userClosedDrawer.current = false; shouldOpenDrawer = true; + switchToListTab = true; } lastListDataLength.current = captureListData.length; } @@ -386,18 +388,31 @@ export const InterpretationLog: React.FC = ({ isOpen, se lastScreenshotDataLength.current = screenshotData.length; } + const getLatestCaptureType = () => { + for (let i = browserSteps.length - 1; i >= 0; i--) { + const type = browserSteps[i].type; + if (type === "list" || type === "text" || type === "screenshot") { + return type; + } + } + return null; + }; + if (shouldOpenDrawer) { setIsOpen(true); - if (switchToTextTab) { - setTimeout(() => { - const textTabIndex = getAvailableTabs().findIndex(tab => tab.id === 'captureText'); - if (textTabIndex !== -1) { - setActiveTab(textTabIndex); - } - }, 100); - } else if (switchToScreenshotTab) { - setTimeout(() => { - const screenshotTabIndex = getAvailableTabs().findIndex(tab => tab.id === 'captureScreenshot'); + const latestType = getLatestCaptureType(); + + setTimeout(() => { + if (latestType === "text") { + const idx = getAvailableTabs().findIndex(t => t.id === "captureText"); + if (idx !== -1) setActiveTab(idx); + + } else if (latestType === "list") { + const idx = getAvailableTabs().findIndex(t => t.id === "captureList"); + if (idx !== -1) setActiveTab(idx); + + } else if (latestType === "screenshot") { + const screenshotTabIndex = getAvailableTabs().findIndex(tab => tab.id === "captureScreenshot"); if (screenshotTabIndex !== -1) { setActiveTab(screenshotTabIndex); const latestIndex = screenshotData.length - 1; @@ -406,7 +421,7 @@ export const InterpretationLog: React.FC = ({ isOpen, se if (!autoFocusedScreenshotIndices.current.has(latestIndex)) { autoFocusedScreenshotIndices.current.add(latestIndex); setTimeout(() => { - const screenshotSteps = browserSteps.filter(step => step.type === 'screenshot') as Array<{ id: number; name?: string; type: 'screenshot' }>; + const screenshotSteps = browserSteps.filter(step => step.type === "screenshot"); const latestScreenshotStep = screenshotSteps[latestIndex]; if (latestScreenshotStep) { const screenshotName = latestScreenshotStep.name || `Screenshot ${latestIndex + 1}`; @@ -415,8 +430,8 @@ export const InterpretationLog: React.FC = ({ isOpen, se }, 300); } } - }, 100); - } + } + }, 100); } }, [hasScrapeListAction, hasScrapeSchemaAction, hasScreenshotAction, captureListData, captureTextData, screenshotData, setIsOpen, getText]);