fix: replace WebSocketContext default value with null and add type definitions

This commit is contained in:
Haileyesus
2026-01-31 11:45:46 +03:00
parent e65a210cb3
commit f6970d6ad9

View File

@@ -1,11 +1,13 @@
import { createContext, useContext, useEffect, useRef, useState } from 'react'; import { createContext, useContext, useEffect, useRef, useState } from 'react';
const WebSocketContext = createContext({ type WebSocketContextType = {
ws: null, ws: WebSocket | null;
sendMessage: () => {}, sendMessage: (message: any) => void;
messages: [], messages: any[];
isConnected: false isConnected: boolean;
}); };
const WebSocketContext = createContext<WebSocketContextType | null>(null);
export const useWebSocket = () => { export const useWebSocket = () => {
const context = useContext(WebSocketContext); const context = useContext(WebSocketContext);
@@ -16,10 +18,10 @@ export const useWebSocket = () => {
}; };
const useWebSocketProviderState = () => { const useWebSocketProviderState = () => {
const wsRef = useRef(null); const wsRef = useRef<WebSocket | null>(null);
const [messages, setMessages] = useState([]); const [messages, setMessages] = useState<any[]>([]);
const [isConnected, setIsConnected] = useState(false); const [isConnected, setIsConnected] = useState(false);
const reconnectTimeoutRef = useRef(null); const reconnectTimeoutRef = useRef<NodeJS.Timeout | null>(null);
useEffect(() => { useEffect(() => {
connect(); connect();
@@ -92,7 +94,7 @@ const useWebSocketProviderState = () => {
} }
}; };
const sendMessage = (message) => { const sendMessage = (message: any) => {
const socket = wsRef.current; const socket = wsRef.current;
if (socket && isConnected) { if (socket && isConnected) {
socket.send(JSON.stringify(message)); socket.send(JSON.stringify(message));
@@ -109,7 +111,7 @@ const useWebSocketProviderState = () => {
}; };
}; };
export const WebSocketProvider = ({ children }) => { export const WebSocketProvider = ({ children }: { children: React.ReactNode }) => {
const webSocketData = useWebSocketProviderState(); const webSocketData = useWebSocketProviderState();
return ( return (
@@ -119,4 +121,4 @@ export const WebSocketProvider = ({ children }) => {
); );
}; };
export default WebSocketContext; export default WebSocketContext;