From 0c11d6ed803db582a5508c70f89e55dc9a36c751 Mon Sep 17 00:00:00 2001 From: Max Schmitt Date: Tue, 9 Jul 2024 13:36:35 +0200 Subject: [PATCH] feat(trace-viewer): allow pasting traces (#31608) --- packages/trace-viewer/src/ui/workbenchLoader.tsx | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/trace-viewer/src/ui/workbenchLoader.tsx b/packages/trace-viewer/src/ui/workbenchLoader.tsx index 1038d8ac99..0260df0d7a 100644 --- a/packages/trace-viewer/src/ui/workbenchLoader.tsx +++ b/packages/trace-viewer/src/ui/workbenchLoader.tsx @@ -58,6 +58,21 @@ export const WorkbenchLoader: React.FunctionComponent<{ setProcessingErrorMessage(null); }, []); + React.useEffect(() => { + const listener = async (e: ClipboardEvent) => { + if (!e.clipboardData?.files.length) + return; + for (const file of e.clipboardData.files) { + if (file.type !== 'application/zip') + return; + } + e.preventDefault(); + processTraceFiles(e.clipboardData.files); + }; + document.addEventListener('paste', listener); + return () => document.removeEventListener('paste', listener); + }); + const handleDropEvent = React.useCallback((event: React.DragEvent) => { event.preventDefault(); processTraceFiles(event.dataTransfer.files);