From bf8d5ed069f8839badc43f6453e3e7c92c94ea2e Mon Sep 17 00:00:00 2001 From: lirazyehezkel <61656597+lirazyehezkel@users.noreply.github.com> Date: Tue, 29 Mar 2022 09:56:59 +0300 Subject: [PATCH] Support multiple workspaces (TRA-4365) (#945) * support multiple workspaces * reopen by websocket url dep * open websocket only when websocketURL is changed * upgrade common version Co-authored-by: gadotroee <55343099+gadotroee@users.noreply.github.com> --- ui-common/package.json | 4 +- .../TrafficViewer/TrafficViewer.tsx | 43 ++++++++++++------- ui/package.json | 4 +- 3 files changed, 31 insertions(+), 20 deletions(-) diff --git a/ui-common/package.json b/ui-common/package.json index 4ca4729f7..8c69f9a36 100644 --- a/ui-common/package.json +++ b/ui-common/package.json @@ -1,6 +1,6 @@ { "name": "@up9/mizu-common", - "version": "1.0.144", + "version": "1.0.145", "description": "Made with create-react-library", "author": "", "license": "MIT", @@ -90,4 +90,4 @@ "files": [ "dist" ] -} \ No newline at end of file +} diff --git a/ui-common/src/components/TrafficViewer/TrafficViewer.tsx b/ui-common/src/components/TrafficViewer/TrafficViewer.tsx index 41f6b09f1..8cd01934b 100644 --- a/ui-common/src/components/TrafficViewer/TrafficViewer.tsx +++ b/ui-common/src/components/TrafficViewer/TrafficViewer.tsx @@ -110,8 +110,27 @@ export const TrafficViewer: React.FC = ({ setAnalyzeStatus, isCloseWebSocket && closeWebSocket() }, [isCloseWebSocket]) + useEffect(() => { + reopenConnection() + }, [webSocketUrl]) + const ws = useRef(null); + const openEmptyWebSocket = () => { + if (query) { + openWebSocket(`(${query}) and leftOff(-1)`, true); + } else { + openWebSocket(`leftOff(-1)`, true); + } + } + + const closeWebSocket = () => { + if(ws?.current?.readyState === WebSocket.OPEN) { + ws.current.close(); + return true; + } + } + const listEntry = useRef(null); const openWebSocket = (query: string, resetEntries: boolean) => { if (resetEntries) { @@ -153,12 +172,6 @@ export const TrafficViewer: React.FC = ({ setAnalyzeStatus, }, 500) } - const closeWebSocket = () => { - if (ws?.current?.readyState === WebSocket.OPEN) { - ws.current.close(); - } - } - if (ws.current) { ws.current.onmessage = (e) => { if (!e?.data) return; @@ -216,8 +229,7 @@ export const TrafficViewer: React.FC = ({ setAnalyzeStatus, useEffect(() => { setTrafficViewerApiState({ ...trafficViewerApiProp, webSocket: { close: closeWebSocket } }); (async () => { - openWebSocket("leftOff(-1)", true); - try { + try{ const tapStatusResponse = await trafficViewerApiProp.tapStatus(); setTappingStatus(tapStatusResponse); if (setAnalyzeStatus) { @@ -232,19 +244,18 @@ export const TrafficViewer: React.FC = ({ setAnalyzeStatus, }, []); const toggleConnection = () => { - if (ws?.current?.readyState === WebSocket.OPEN) { - ws?.current?.close(); - } else { - if (query) { - openWebSocket(`(${query}) and leftOff(-1)`, true); - } else { - openWebSocket(`leftOff(-1)`, true); - } + if(!closeWebSocket()) { + openEmptyWebSocket(); scrollableRef.current.jumpToBottom(); setIsSnappedToBottom(true); } } + const reopenConnection = async () => { + closeWebSocket() + openEmptyWebSocket(); + } + useEffect(() => { return () => { ws.current.close(); diff --git a/ui/package.json b/ui/package.json index 9a23aedc6..613def3f3 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.144", + "@up9/mizu-common": "1.0.145", "axios": "^0.25.0", "core-js": "^3.20.2", "craco-babel-loader": "^1.0.3", @@ -75,4 +75,4 @@ "last 1 safari version" ] } -} \ No newline at end of file +}