mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-06-28 15:25:27 +08:00
fix: replace WebSocketContext default value with null and add type definitions
This commit is contained in:
@@ -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;
|
||||||
Reference in New Issue
Block a user