diff --git a/ui-common/src/components/TrafficViewer/EntryDetailed.tsx b/ui-common/src/components/TrafficViewer/EntryDetailed.tsx index 975309c94..88d5d81ce 100644 --- a/ui-common/src/components/TrafficViewer/EntryDetailed.tsx +++ b/ui-common/src/components/TrafficViewer/EntryDetailed.tsx @@ -11,6 +11,7 @@ import trafficViewerApi from "../../recoil/TrafficViewerApi"; import TrafficViewerApi from "./TrafficViewerApi"; import TrafficViewerApiAtom from "../../recoil/TrafficViewerApi/atom"; import queryAtom from "../../recoil/query/atom"; +import useWindowDimensions, { useRequestTextByWidth } from "../../hooks/WindowDimensionsHook"; const useStyles = makeStyles(() => ({ entryTitle: { @@ -35,15 +36,18 @@ const useStyles = makeStyles(() => ({ })); export const formatSize = (n: number) => n > 1000 ? `${Math.round(n / 1000)}KB` : `${n} B`; - +const minSizeDisplayRequestSize = 880; const EntryTitle: React.FC = ({protocol, data, elapsedTime}) => { const classes = useStyles(); const request = data.request; const response = data.response; + const { width } = useWindowDimensions(); + const {requestText, responseText, elapsedTimeText} = useRequestTextByWidth(width) + return
-
+ {(width > minSizeDisplayRequestSize) &&
{request && = ({protocol, data, elapsedTime}) => { style={{opacity: 0.5}} id="entryDetailedTitleRequestSize" > - {`Request: ${formatSize(data.requestSize)}`} + {`${requestText}${formatSize(data.requestSize)}`}
} {response && = ({protocol, data, elapsedTime}) => { style={{opacity: 0.5}} id="entryDetailedTitleResponseSize" > - {`Response: ${formatSize(data.responseSize)}`} + {`${responseText}${formatSize(data.responseSize)}`}
} {response && = ${elapsedTime}`} - style={{marginRight: 18}} + style={{margin: "0 0 0 18px"}} displayIconOnMouseOver={true} >
- {`Elapsed Time: ${Math.round(elapsedTime)}ms`} + {`${elapsedTimeText}${Math.round(elapsedTime)}ms`}
} -
+ } ; }; diff --git a/ui-common/src/hooks/WindowDimensionsHook.tsx b/ui-common/src/hooks/WindowDimensionsHook.tsx new file mode 100644 index 000000000..0f9fa8315 --- /dev/null +++ b/ui-common/src/hooks/WindowDimensionsHook.tsx @@ -0,0 +1,43 @@ +import { useState, useEffect } from 'react'; + +function getWindowDimensions() { + const { innerWidth: width, innerHeight: height } = window; + return { + width, + height + }; +} + +export function useRequestTextByWidth(windowWidth){ + + let requestText = "Request: " + let responseText = "Response: " + let elapsedTimeText = "Elapsed Time: " + + if (windowWidth < 1078) { + requestText = "" + responseText = "" + elapsedTimeText = "" + } else if (windowWidth < 1356) { + requestText = "Req: " + responseText = "Res: " + elapsedTimeText = "ET: " + } + + return {requestText, responseText, elapsedTimeText} +} + +export default function useWindowDimensions() { + const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions()); + + useEffect(() => { + function handleResize() { + setWindowDimensions(getWindowDimensions()); + } + + window.addEventListener('resize', handleResize); + return () => window.removeEventListener('resize', handleResize); + }, []); + + return windowDimensions; +}