From 481034bd0d36455c5f482ad03c7ddfb1754263e7 Mon Sep 17 00:00:00 2001 From: Pavel Feldman Date: Tue, 6 Apr 2021 11:27:57 +0800 Subject: [PATCH] chore: trace viewer actions sidebar (#6083) --- src/web/components/splitView.css | 22 +++++++++++-- src/web/components/splitView.tsx | 33 ++++++++++++++----- src/web/traceViewer/ui/actionList.css | 8 +++-- .../traceViewer/ui/networkResourceDetails.css | 1 - src/web/traceViewer/ui/workbench.tsx | 27 +++++++-------- 5 files changed, 61 insertions(+), 30 deletions(-) diff --git a/src/web/components/splitView.css b/src/web/components/splitView.css index 7f3d2ef1c8..0f2ccef8c2 100644 --- a/src/web/components/splitView.css +++ b/src/web/components/splitView.css @@ -17,14 +17,25 @@ .split-view { display: flex; flex: auto; - flex-direction: column; position: relative; } +.split-view.vertical { + flex-direction: column; +} + +.split-view.vertical.sidebar-first { + flex-direction: column-reverse; +} + .split-view.horizontal { flex-direction: row; } +.split-view.horizontal.sidebar-first { + flex-direction: row-reverse; +} + .split-view-main { display: flex; flex: auto; @@ -33,7 +44,6 @@ .split-view-sidebar { display: flex; flex: none; - border-top: 1px solid #ddd; } .split-view.vertical > .split-view-sidebar { @@ -44,6 +54,14 @@ border-left: 1px solid #ddd; } +.split-view.vertical.sidebar-first > .split-view-sidebar { + border-bottom: 1px solid #ddd; +} + +.split-view.horizontal.sidebar-first > .split-view-sidebar { + border-right: 1px solid #ddd; +} + .split-view-resizer { position: absolute; z-index: 100; diff --git a/src/web/components/splitView.tsx b/src/web/components/splitView.tsx index 0ea8c665c7..7103b2fdc8 100644 --- a/src/web/components/splitView.tsx +++ b/src/web/components/splitView.tsx @@ -19,7 +19,8 @@ import * as React from 'react'; export interface SplitViewProps { sidebarSize: number, - sidebarHidden?: boolean + sidebarHidden?: boolean, + sidebarIsFirst?: boolean, orientation?: 'vertical' | 'horizontal', } @@ -27,7 +28,8 @@ const kMinSidebarSize = 50; export const SplitView: React.FC = ({ sidebarSize, - sidebarHidden, + sidebarHidden = false, + sidebarIsFirst = false, orientation = 'vertical', children }) => { @@ -36,10 +38,20 @@ export const SplitView: React.FC = ({ const childrenArray = React.Children.toArray(children); document.body.style.userSelect = resizing ? 'none' : 'inherit'; - const resizerStyle = orientation === 'vertical' ? - {bottom: resizing ? 0 : size - 4, top: resizing ? 0 : undefined, height: resizing ? 'initial' : 8 } : - {right: resizing ? 0 : size - 4, left: resizing ? 0 : undefined, width: resizing ? 'initial' : 8 }; - return
+ let resizerStyle: any = {}; + if (orientation === 'vertical') { + if (sidebarIsFirst) + resizerStyle = { top: resizing ? 0 : size - 4, bottom: resizing ? 0 : undefined, height: resizing ? 'initial' : 8 }; + else + resizerStyle = { bottom: resizing ? 0 : size - 4, top: resizing ? 0 : undefined, height: resizing ? 'initial' : 8 }; +} else { + if (sidebarIsFirst) + resizerStyle = { left: resizing ? 0 : size - 4, right: resizing ? 0 : undefined, width: resizing ? 'initial' : 8 }; + else + resizerStyle = { right: resizing ? 0 : size - 4, left: resizing ? 0 : undefined, width: resizing ? 'initial' : 8 }; + } + + return
{childrenArray[0]}
{ !sidebarHidden &&
{childrenArray[1]}
} { !sidebarHidden &&
= ({ onMouseDown={event => setResizing({ offset: orientation === 'vertical' ? event.clientY : event.clientX, size })} onMouseUp={() => setResizing(null)} onMouseMove={event => { - if (!event.buttons) + if (!event.buttons) { setResizing(null); - else if (resizing) - setSize(Math.max(kMinSidebarSize, resizing.size - (orientation === 'vertical' ? event.clientY : event.clientX) + resizing.offset)); + } else if (resizing) { + const clientOffset = orientation === 'vertical' ? event.clientY : event.clientX; + const resizingPosition = sidebarIsFirst ? clientOffset : resizing.size - clientOffset + resizing.offset; + setSize(Math.max(kMinSidebarSize, resizingPosition)); + } }} >
}
; diff --git a/src/web/traceViewer/ui/actionList.css b/src/web/traceViewer/ui/actionList.css index 9c6dbdc3c3..6d3993aef3 100644 --- a/src/web/traceViewer/ui/actionList.css +++ b/src/web/traceViewer/ui/actionList.css @@ -15,14 +15,13 @@ */ .action-list { - width: var(--sidebar-width); display: flex; flex-direction: column; - flex: none; + flex: auto; position: relative; - padding: 0 var(--layout-gap); user-select: none; color: #555; + overflow: auto; } .action-entry { @@ -49,6 +48,7 @@ } .action-title { + flex: none; display: inline; white-space: nowrap; } @@ -62,12 +62,14 @@ .action-selector { display: inline; + flex: none; padding-left: 5px; color: var(--orange); } .action-url { display: inline; + flex: none; padding-left: 5px; color: var(--blue); } diff --git a/src/web/traceViewer/ui/networkResourceDetails.css b/src/web/traceViewer/ui/networkResourceDetails.css index 5cbf6e44a6..776af9510d 100644 --- a/src/web/traceViewer/ui/networkResourceDetails.css +++ b/src/web/traceViewer/ui/networkResourceDetails.css @@ -61,7 +61,6 @@ } .network-request-details { - font-family: var(--monospace-font); width: 100%; } diff --git a/src/web/traceViewer/ui/workbench.tsx b/src/web/traceViewer/ui/workbench.tsx index a8476998a2..1eeec360f0 100644 --- a/src/web/traceViewer/ui/workbench.tsx +++ b/src/web/traceViewer/ui/workbench.tsx @@ -72,19 +72,7 @@ export const Workbench: React.FunctionComponent<{ onTimeSelected={time => setSelectedTime(time)} />
-
-
- { - setSelectedAction(action); - setSelectedTime(undefined); - }} - onHighlighted={action => setHighlightedAction(action)} - /> -
+ }, { id: 'network', title: 'Network', render: () => }, ]}/> - -
+ { + setSelectedAction(action); + setSelectedTime(undefined); + }} + onHighlighted={action => setHighlightedAction(action)} + /> + ; };