Files
diplom-frontend/app/components/manager/gateway-websocket-connection-manager.tsx
2025-05-20 04:16:03 +03:00

42 lines
1.0 KiB
TypeScript

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}
</>
);
}