import { useQueryClient } from "@tanstack/react-query"; import { useEffect } from "react"; import { ConnectionState } from "~/lib/websocket/gateway/types"; import { useGatewayStore } from "~/stores/gateway-store"; import { useTokenStore } from "~/stores/token-store"; export function GatewayWebSocketConnectionManager() { const token = useTokenStore((state) => state.token); const { setQueryClient } = useGatewayStore(); const queryClient = useQueryClient(); useEffect(() => { setQueryClient(queryClient); }, [queryClient]); useEffect(() => { const { status, connect, disconnect } = useGatewayStore.getState(); if (!!token) { connect(token); } else { if (status === ConnectionState.CONNECTED) { disconnect(); } } return () => { if (status === ConnectionState.CONNECTED) { disconnect(); } }; }, [token]); return null; }