import React, { useMemo, useState } from 'react';
import { Camera } from 'lucide-react-native';
import type { SuperagentToolRendererProps } from '../../types';
import { getScreenshotState } from '../mediaWidgetUtils';
import { ImageGrid } from '../primitives/ImageGrid';
import { ToolWidgetRow } from '../primitives/ToolWidgetRow';
/**
* browserbase_screenshot / local_browser_screenshot — native port of the web
* BrowserbaseScreenshot card: a status row that, once the image_url result
* lands, becomes a toggleable row revealing the screenshot with a tap-to-zoom
* lightbox (the native stand-in for the web's click-to-open-tab image).
*/
export function BrowserbaseScreenshotWidget({ toolCall }: SuperagentToolRendererProps) {
// The web browserbase card starts expanded.
const [expanded, setExpanded] = useState(true);
// Memoized: extracting the image URL JSON-parses the (potentially large)
// screenshot results string.
const { imageUrl, phase } = useMemo(() => getScreenshotState(toolCall), [toolCall]);
if (phase === 'ready' && imageUrl) {
return (
setExpanded((current) => !current)}
status="success"
title="Screenshot"
>
);
}
const title = phase === 'error' ? 'Screenshot failed' : phase === 'taken' ? 'Screenshot taken' : 'Taking screenshot';
const status = phase === 'taken' ? 'success' : phase === 'error' ? 'error' : 'running';
return ;
}