From c45a869b7526f34bb11cb8e8f7ae37bc52290fc1 Mon Sep 17 00:00:00 2001 From: leon-up9 <97597983+leon-up9@users.noreply.github.com> Date: Sun, 27 Mar 2022 15:47:46 +0300 Subject: [PATCH] Fix/regration-fixes-24.3 (#933) * link open in a new tab * fixed double toast * added const * javiers new icon * epbg img fix * pkg update * changed import * formated Co-authored-by: Leon <> --- ui-common/package.json | 2 +- .../src/components/OasModal/OasModal.tsx | 54 +++++++++-------- .../TrafficViewer/EntryDetailed.tsx | 37 ++++++------ .../EntryListItem/EntryListItem.tsx | 2 +- .../EntryListItem}/assets/ebpf.png | Bin .../TrafficViewer/TrafficViewer.tsx | 57 ++++++++++-------- .../src/components/UI/InformationIcon.tsx | 2 +- ui-common/src/components/UI/assets/info.svg | 8 ++- ui-common/src/configs/Consts.ts | 1 + ui/package.json | 2 +- .../ServiceMapModal/ServiceMapModal.tsx | 29 ++++----- ui/src/consts.ts | 1 + ui/src/index.tsx | 5 +- 13 files changed, 109 insertions(+), 91 deletions(-) rename ui-common/src/components/{ => TrafficViewer/EntryListItem}/assets/ebpf.png (100%) create mode 100644 ui-common/src/configs/Consts.ts diff --git a/ui-common/package.json b/ui-common/package.json index b764eed05..3fe9d2f47 100644 --- a/ui-common/package.json +++ b/ui-common/package.json @@ -1,6 +1,6 @@ { "name": "@up9/mizu-common", - "version": "1.0.138", + "version": "1.0.139", "description": "Made with create-react-library", "author": "", "license": "MIT", diff --git a/ui-common/src/components/OasModal/OasModal.tsx b/ui-common/src/components/OasModal/OasModal.tsx index 1f1c2804c..d5283a93a 100644 --- a/ui-common/src/components/OasModal/OasModal.tsx +++ b/ui-common/src/components/OasModal/OasModal.tsx @@ -7,7 +7,9 @@ import style from './OasModal.module.sass'; import openApiLogo from 'assets/openApiLogo.png' import { redocThemeOptions } from "./redocThemeOptions"; import React from "react"; -import { UI } from "../.."; +import { TOAST_CONTAINER_ID } from "../../configs/Consts"; +import { Select } from "../UI/Select"; + const modalStyle = { position: 'absolute', @@ -42,7 +44,7 @@ const OasModal = ({ openModal, handleCloseModal, getOasServices, getOasByService const data = await getOasByService(selectedService); setSelectedServiceSpec(data); } catch (e) { - toast.error("Error occurred while fetching service OAS spec"); + toast.error("Error occurred while fetching service OAS spec", { containerId: TOAST_CONTAINER_ID }); console.error(e); } } @@ -106,32 +108,32 @@ const OasModal = ({ openModal, handleCloseModal, getOasServices, getOasByService
OpenApi
- close -
+ close +
- - - Resolved - {resolvedServices.map((service) => ( - - {service} - - ))} - UnResolved - {unResolvedServices.map((service) => ( - - {service} - - ))} - - -
+ + + +
{selectedServiceSpec && ({ entryTitle: { @@ -37,24 +38,24 @@ 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 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) + const { requestText, responseText, elapsedTimeText } = useRequestTextByWidth(width) return
- - {(width > minSizeDisplayRequestSize) &&
+ + {(width > minSizeDisplayRequestSize) &&
{request &&
{`${requestText}${formatSize(data.requestSize)}`} @@ -62,11 +63,11 @@ const EntryTitle: React.FC = ({protocol, data, elapsedTime}) => { } {response &&
{`${responseText}${formatSize(data.responseSize)}`} @@ -74,11 +75,11 @@ const EntryTitle: React.FC = ({protocol, data, elapsedTime}) => { } {response && = ${elapsedTime}`} - style={{margin: "0 0 0 18px"}} + style={{ margin: "0 0 0 18px" }} displayIconOnMouseOver={true} >
{`${elapsedTimeText}${Math.round(elapsedTime)}ms`} @@ -88,7 +89,7 @@ const EntryTitle: React.FC = ({protocol, data, elapsedTime}) => {
; }; -const EntrySummary: React.FC = ({entry}) => { +const EntrySummary: React.FC = ({ entry }) => { return { pauseOnHover: true, draggable: true, progress: undefined, - }); + }, { containerId: TOAST_CONTAINER_ID }); } console.error(error); } @@ -139,7 +140,7 @@ export const EntryDetailed = () => { data={entryData.data} elapsedTime={entryData.data.elapsedTime} />} - {entryData && } + {entryData && } {entryData && ({ details: { @@ -47,14 +47,14 @@ interface TrafficViewerProps { trafficViewerApiProp: TrafficViewerApi, actionButtons?: JSX.Element, isShowStatusBar?: boolean, - webSocketUrl : string, - isCloseWebSocket : boolean, - isDemoBannerView : boolean + webSocketUrl: string, + isCloseWebSocket: boolean, + isDemoBannerView: boolean } -export const TrafficViewer : React.FC = ({setAnalyzeStatus, trafficViewerApiProp, - actionButtons,isShowStatusBar,webSocketUrl, - isCloseWebSocket, isDemoBannerView}) => { +export const TrafficViewer: React.FC = ({ setAnalyzeStatus, trafficViewerApiProp, + actionButtons, isShowStatusBar, webSocketUrl, + isCloseWebSocket, isDemoBannerView }) => { const classes = useLayoutStyles(); @@ -106,9 +106,9 @@ export const TrafficViewer : React.FC = ({setAnalyzeStatus, handleQueryChange(query); }, [query, handleQueryChange]); - useEffect(()=>{ + useEffect(() => { isCloseWebSocket && closeWebSocket() - },[isCloseWebSocket]) + }, [isCloseWebSocket]) const ws = useRef(null); @@ -126,7 +126,7 @@ export const TrafficViewer : React.FC = ({setAnalyzeStatus, sendQueryWhenWsOpen(query); ws.current.onclose = () => { - if(window.location.pathname === "/") + if (window.location.pathname === "/") setForceRender(forceRender + 1); } ws.current.onerror = (event) => { @@ -140,13 +140,13 @@ export const TrafficViewer : React.FC = ({setAnalyzeStatus, openWebSocket(`leftOff(${leftOffBottom})`, false); } } - } catch (e) {} + } catch (e) { } } const sendQueryWhenWsOpen = (query) => { setTimeout(() => { if (ws?.current?.readyState === WebSocket.OPEN) { - ws.current.send(JSON.stringify({"query": query, "enableFullEntries": false})); + ws.current.send(JSON.stringify({ "query": query, "enableFullEntries": false })); } else { sendQueryWhenWsOpen(query); } @@ -154,7 +154,7 @@ export const TrafficViewer : React.FC = ({setAnalyzeStatus, } const closeWebSocket = () => { - if(ws?.current?.readyState === WebSocket.OPEN) { + if (ws?.current?.readyState === WebSocket.OPEN) { ws.current.close(); } } @@ -194,7 +194,7 @@ export const TrafficViewer : React.FC = ({setAnalyzeStatus, pauseOnHover: true, draggable: true, progress: undefined, - }); + }, { containerId: TOAST_CONTAINER_ID }); break; case "queryMetadata": setQueriedCurrent(queriedCurrent + message.data.current); @@ -217,13 +217,13 @@ export const TrafficViewer : React.FC = ({setAnalyzeStatus, } useEffect(() => { - setTrafficViewerApiState({...trafficViewerApiProp, webSocket : {close : closeWebSocket}}); + setTrafficViewerApiState({ ...trafficViewerApiProp, webSocket: { close: closeWebSocket } }); (async () => { openWebSocket("leftOff(-1)", true); - try{ + try { const tapStatusResponse = await trafficViewerApiProp.tapStatus(); setTappingStatus(tapStatusResponse); - if(setAnalyzeStatus) { + if (setAnalyzeStatus) { const analyzeStatusResponse = await trafficViewerApiProp.analyzeStatus(); setAnalyzeStatus(analyzeStatusResponse); } @@ -235,7 +235,7 @@ export const TrafficViewer : React.FC = ({setAnalyzeStatus, }, []); const toggleConnection = () => { - if(ws?.current?.readyState === WebSocket.OPEN) { + if (ws?.current?.readyState === WebSocket.OPEN) { ws?.current?.close(); } else { if (query) { @@ -349,19 +349,28 @@ export const TrafficViewer : React.FC = ({setAnalyzeStatus, setAddressesWithTLS={setAddressesWithTLS} userDismissedTLSWarning={userDismissedTLSWarning} setUserDismissedTLSWarning={setUserDismissedTLSWarning} /> -
); }; const MemoiedTrafficViewer = React.memo(TrafficViewer) const TrafficViewerContainer: React.FC = ({ setAnalyzeStatus, trafficViewerApiProp, - actionButtons, isShowStatusBar = true , - webSocketUrl, isCloseWebSocket, isDemoBannerView}) => { + actionButtons, isShowStatusBar = true, + webSocketUrl, isCloseWebSocket, isDemoBannerView }) => { return + isCloseWebSocket={isCloseWebSocket} trafficViewerApiProp={trafficViewerApiProp} + setAnalyzeStatus={setAnalyzeStatus} isDemoBannerView={isDemoBannerView} /> + } diff --git a/ui-common/src/components/UI/InformationIcon.tsx b/ui-common/src/components/UI/InformationIcon.tsx index ed7b95ce6..1eed7be67 100644 --- a/ui-common/src/components/UI/InformationIcon.tsx +++ b/ui-common/src/components/UI/InformationIcon.tsx @@ -11,7 +11,7 @@ export interface InformationIconProps{ export const InformationIcon: React.FC = ({link,style}) => { return - + Info icon diff --git a/ui-common/src/components/UI/assets/info.svg b/ui-common/src/components/UI/assets/info.svg index 0daca8889..b805f8de4 100644 --- a/ui-common/src/components/UI/assets/info.svg +++ b/ui-common/src/components/UI/assets/info.svg @@ -1,3 +1,5 @@ - - - \ No newline at end of file + + + + + diff --git a/ui-common/src/configs/Consts.ts b/ui-common/src/configs/Consts.ts new file mode 100644 index 000000000..e3f8533ef --- /dev/null +++ b/ui-common/src/configs/Consts.ts @@ -0,0 +1 @@ +export const TOAST_CONTAINER_ID = "Common"; \ No newline at end of file diff --git a/ui/package.json b/ui/package.json index 6de6c9d42..4897ab0a7 100644 --- a/ui/package.json +++ b/ui/package.json @@ -13,7 +13,7 @@ "@types/jest": "^26.0.22", "@types/node": "^12.20.10", "@uiw/react-textarea-code-editor": "^1.4.12", - "@up9/mizu-common": "1.0.138", + "@up9/mizu-common": "1.0.139", "axios": "^0.25.0", "core-js": "^3.20.2", "craco-babel-loader": "^1.0.3", diff --git a/ui/src/components/ServiceMapModal/ServiceMapModal.tsx b/ui/src/components/ServiceMapModal/ServiceMapModal.tsx index 613562261..ca1406fe7 100644 --- a/ui/src/components/ServiceMapModal/ServiceMapModal.tsx +++ b/ui/src/components/ServiceMapModal/ServiceMapModal.tsx @@ -11,6 +11,7 @@ import ServiceMapOptions from './ServiceMapOptions' import { useCommonStyles } from "../../helpers/commonStyle"; import refresh from "../assets/refresh.svg"; import close from "../assets/close.svg"; +import { TOAST_CONTAINER_ID } from "../../consts"; interface GraphData { nodes: Node[]; @@ -140,7 +141,7 @@ export const ServiceMapModal: React.FC = ({ isOpen, onOpen setGraphData(newGraphData) } catch (ex) { - toast.error("An error occurred while loading Mizu Service Map, see console for mode details"); + toast.error("An error occurred while loading Mizu Service Map, see console for mode details", { containerId: TOAST_CONTAINER_ID }); console.error(ex); } finally { setIsLoading(false) @@ -176,20 +177,20 @@ export const ServiceMapModal: React.FC = ({ isOpen, onOpen spinner
} {!isLoading &&
-
-
- +
+
+ +
+ close onClose()} style={{ cursor: "pointer" }}>
- close onClose()} style={{cursor:"pointer"}}> -
-