diff --git a/packages/trace-viewer/src/ui/attachmentsTab.tsx b/packages/trace-viewer/src/ui/attachmentsTab.tsx index 818e180ff4..7a636a83b0 100644 --- a/packages/trace-viewer/src/ui/attachmentsTab.tsx +++ b/packages/trace-viewer/src/ui/attachmentsTab.tsx @@ -94,7 +94,7 @@ const ExpandableAttachment: React.FunctionComponent = export const AttachmentsTab: React.FunctionComponent<{ model: MultiTraceModel | undefined, - revealedAttachment?: AfterActionTraceEventAttachment, + revealedAttachment?: [AfterActionTraceEventAttachment, number], }> = ({ model, revealedAttachment }) => { const { diffMap, screenshots, attachments } = React.useMemo(() => { const attachments = new Set(); @@ -154,7 +154,7 @@ export const AttachmentsTab: React.FunctionComponent<{ return
; })} diff --git a/packages/trace-viewer/src/ui/workbench.tsx b/packages/trace-viewer/src/ui/workbench.tsx index 423522b0f8..5bd45dc163 100644 --- a/packages/trace-viewer/src/ui/workbench.tsx +++ b/packages/trace-viewer/src/ui/workbench.tsx @@ -59,7 +59,7 @@ export const Workbench: React.FunctionComponent<{ }> = ({ model, showSourcesFirst, rootDir, fallbackLocation, isLive, hideTimeline, status, annotations, inert, onOpenExternally, revealSource }) => { const [selectedCallId, setSelectedCallId] = React.useState(undefined); const [revealedError, setRevealedError] = React.useState(undefined); - const [revealedAttachment, setRevealedAttachment] = React.useState(undefined); + const [revealedAttachment, setRevealedAttachment] = React.useState<[AfterActionTraceEventAttachment, number] | undefined>(undefined); const [highlightedCallId, setHighlightedCallId] = React.useState(); const [highlightedEntry, setHighlightedEntry] = React.useState(); const [highlightedConsoleMessage, setHighlightedConsoleMessage] = React.useState(); @@ -148,7 +148,12 @@ export const Workbench: React.FunctionComponent<{ const revealAttachment = React.useCallback((attachment: AfterActionTraceEventAttachment) => { selectPropertiesTab('attachments'); - setRevealedAttachment({ ...attachment }); // copy to force re-render + setRevealedAttachment(currentValue => { + if (!currentValue) + return [attachment, 0]; + const revealCounter = currentValue[1]; + return [attachment, revealCounter + 1]; + }); }, [selectPropertiesTab]); React.useEffect(() => {