From 9ca895dea087a36219202624a8550921bb924bf0 Mon Sep 17 00:00:00 2001 From: Max Schmitt Date: Thu, 7 Mar 2024 22:24:21 +0100 Subject: [PATCH] fix(trace-viewer): trap focus inside drop-target popup (#29845) https://github.com/microsoft/playwright/issues/29099 --- packages/trace-viewer/src/ui/workbench.tsx | 5 +++-- packages/trace-viewer/src/ui/workbenchLoader.tsx | 12 +++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/trace-viewer/src/ui/workbench.tsx b/packages/trace-viewer/src/ui/workbench.tsx index c667062d11..c50b345b75 100644 --- a/packages/trace-viewer/src/ui/workbench.tsx +++ b/packages/trace-viewer/src/ui/workbench.tsx @@ -50,7 +50,8 @@ export const Workbench: React.FunctionComponent<{ onSelectionChanged?: (action: ActionTraceEventInContext) => void, isLive?: boolean, status?: UITestStatus, -}> = ({ model, showSourcesFirst, rootDir, fallbackLocation, initialSelection, onSelectionChanged, isLive, status }) => { + inert?: boolean, +}> = ({ model, showSourcesFirst, rootDir, fallbackLocation, initialSelection, onSelectionChanged, isLive, status, inert }) => { const [selectedAction, setSelectedActionImpl] = React.useState(undefined); const [revealedStack, setRevealedStack] = React.useState(undefined); const [highlightedAction, setHighlightedAction] = React.useState(); @@ -213,7 +214,7 @@ export const Workbench: React.FunctionComponent<{ else if (model && model.wallTime) time = Date.now() - model.wallTime; - return
+ return
{ event.preventDefault(); setDragOver(true); }}> -
+
Playwright logo
@@ -150,7 +152,7 @@ export const WorkbenchLoader: React.FunctionComponent<{
- + {fileForLocalModeError &&
Trace Viewer uses Service Workers to show traces. To view trace:
@@ -159,9 +161,9 @@ export const WorkbenchLoader: React.FunctionComponent<{
3. Drop the trace from the download shelf into the page
} - {!isServer && !dragOver && !fileForLocalModeError && (!traceURLs.length || processingErrorMessage) &&
+ {showFileUploadDropArea &&
{processingErrorMessage}
-
Drop Playwright Trace to load
+
Drop Playwright Trace to load
or
+ }} type='button'>Select file(s)
Playwright Trace Viewer is a Progressive Web App, it does not send your trace anywhere, it opens it locally.
}