import React from "react"; // Introduce this custom React hook to run any given effect // ONCE. In Strict mode, React will run all useEffect's twice, // which will trigger a WebSocket connection and then immediately // close it, causing the "closed before could connect" error. export const useEffectOnce = (callback: () => void) => { const isUsedRef = React.useRef(false); React.useEffect(() => { if (isUsedRef.current) { return; } isUsedRef.current = true; callback(); }, [isUsedRef.current]); };