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
-

-
+
+
-
-
- Resolved
- {resolvedServices.map((service) => (
-
- ))}
- UnResolved
- {unResolvedServices.map((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
-
+
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
}
{!isLoading &&
-
-
-
+
+
+
+
+

onClose()} style={{ cursor: "pointer" }}>
-

onClose()} style={{cursor:"pointer"}}>
-
-