diff --git a/webview-ui/src/components/chat/BrowserSessionRow.tsx b/webview-ui/src/components/chat/BrowserSessionRow.tsx index 5964b4d8a0..b32abd1924 100644 --- a/webview-ui/src/components/chat/BrowserSessionRow.tsx +++ b/webview-ui/src/components/chat/BrowserSessionRow.tsx @@ -87,22 +87,26 @@ const BrowserSessionRow = memo((props: BrowserSessionRowProps) => { consoleLogs: latestState.consoleLogs, } - // Find latest click position for cursor display - const latestClickPosition = useMemo(() => { - if (!isBrowsing) return undefined - - // Look through messages backwards for the latest browser_action with click + // Find latest browser action and click position + const latestBrowserAction = useMemo(() => { + // Look through messages backwards for the latest browser_action for (let i = messages.length - 1; i >= 0; i--) { const message = messages[i] if (message.say === "browser_action" && message.text) { const browserAction = JSON.parse(message.text) as ClineSayBrowserAction - if (browserAction.action === "click" && browserAction.coordinate) { - return browserAction.coordinate - } + return browserAction } } return undefined - }, [isBrowsing, messages]) + }, [messages]) + + const latestClickPosition = useMemo(() => { + if (!isBrowsing || !latestBrowserAction) return undefined + if (latestBrowserAction.action === "click" && latestBrowserAction.coordinate) { + return latestBrowserAction.coordinate + } + return undefined + }, [isBrowsing, latestBrowserAction]) const mousePosition = isBrowsing ? latestClickPosition || displayState.mousePosition @@ -226,6 +230,15 @@ const BrowserSessionRow = memo((props: BrowserSessionRowProps) => { )} + + {/* Show latest browser action */} + {latestBrowserAction && ( + + )} , ) @@ -272,7 +285,7 @@ const BrowserActionBox = ({ } } return ( -
+