From 209644d500ff90a301c7b64155ffd629d7522bf5 Mon Sep 17 00:00:00 2001 From: Proddy Date: Sat, 6 Jan 2024 10:47:51 +0100 Subject: [PATCH] unused --- interface/src/utils/useWs.ts | 91 ------------------------------------ 1 file changed, 91 deletions(-) delete mode 100644 interface/src/utils/useWs.ts diff --git a/interface/src/utils/useWs.ts b/interface/src/utils/useWs.ts deleted file mode 100644 index 3471c691e..000000000 --- a/interface/src/utils/useWs.ts +++ /dev/null @@ -1,91 +0,0 @@ -import { debounce } from 'lodash-es'; -import { useCallback, useEffect, useRef, useState } from 'react'; -import Sockette from 'sockette'; - -import { addAccessTokenParameter } from 'api/authentication'; - -interface WebSocketIdMessage { - type: 'id'; - id: string; -} - -interface WebSocketPayloadMessage { - type: 'payload'; - origin_id: string; - payload: D; -} - -export type WebSocketMessage = WebSocketIdMessage | WebSocketPayloadMessage; - -export const useWs = (wsUrl: string, wsThrottle = 100) => { - const ws = useRef(); - const clientId = useRef(); - - const [connected, setConnected] = useState(false); - const [data, setData] = useState(); - const [transmit, setTransmit] = useState(); - const [clear, setClear] = useState(); - - const onMessage = useCallback((event: MessageEvent) => { - const rawData = event.data; - if (typeof rawData === 'string' || rawData instanceof String) { - const message = JSON.parse(rawData as string) as WebSocketMessage; - switch (message.type) { - case 'id': - clientId.current = message.id; - break; - case 'payload': - if (clientId.current) { - setData((existingData) => (clientId.current === message.origin_id && existingData) || message.payload); - } - break; - } - } - }, []); - - const doSaveData = useCallback((newData: D, clearData = false) => { - if (!ws.current) { - return; - } - if (clearData) { - setData(undefined); - } - ws.current.json(newData); - }, []); - - const saveData = useRef(debounce(doSaveData, wsThrottle)); - - const updateData = (newData: React.SetStateAction, transmitData: true, clearData: false) => { - setData(newData); - setTransmit(transmitData); - setClear(clearData); - }; - - useEffect(() => { - if (!transmit) { - return; - } - data && saveData.current(data, clear); - setTransmit(false); - setClear(false); - }, [doSaveData, data, transmit, clear]); - - useEffect(() => { - const instance = new Sockette(addAccessTokenParameter(wsUrl), { - onmessage: onMessage, - onopen: () => { - setConnected(true); - }, - onclose: () => { - clientId.current = undefined; - setConnected(false); - setData(undefined); - } - }); - ws.current = instance; - // eslint-disable-next-line @typescript-eslint/unbound-method - return instance.close; - }, [wsUrl, onMessage]); - - return { connected, data, updateData } as const; -};