diff --git a/src/fireedge/src/client/hooks/useFetch.js b/src/fireedge/src/client/hooks/useFetch.js index 3aacc0f6f4..ca124a1b80 100644 --- a/src/fireedge/src/client/hooks/useFetch.js +++ b/src/fireedge/src/client/hooks/useFetch.js @@ -51,15 +51,9 @@ const useFetch = (request, socket) => { const cancelRequest = useRef(false) const [state, dispatch] = useReducer(fetchReducer, INITIAL_STATE) - useEffect(() => { - return () => { - cancelRequest.current = true - } - }, []) + const isFetched = state.data !== undefined && state.status === STATUS.FETCHED useEffect(() => { - const isFetched = state.data !== undefined && state.status === STATUS.FETCHED - isFetched && socket?.connect( socketData => dispatch({ type: ACTIONS.SUCCESS, payload: socketData }) ) @@ -67,7 +61,11 @@ const useFetch = (request, socket) => { return () => { socket?.disconnect() } - }, [state.data, state.status]) + }, [isFetched]) + + useEffect(() => () => { + cancelRequest.current = true + }, []) const doFetch = useCallback(async (payload, reload = false) => { dispatch({ type: ACTIONS.REQUEST, reload }) diff --git a/src/fireedge/src/client/hooks/useSocket.js b/src/fireedge/src/client/hooks/useSocket.js index 7945b7b3e1..38a4457ba8 100644 --- a/src/fireedge/src/client/hooks/useSocket.js +++ b/src/fireedge/src/client/hooks/useSocket.js @@ -35,9 +35,7 @@ export default function useSocket () { socket.connect() }, - disconnect: () => { - socket.connected && socket.disconnect() - } + disconnect: () => socket.connected && socket.disconnect() } }, [jwt, zone])