So I have a SocketContext provider like so:
import React, { createContext, useContext, useEffect, useState } from 'react';
import UserProvider, {SessionContext} from "./UserProvider";
type WebSocketContextType = {
socket: WebSocket | null,
subscribeToAllMessages: (callback: (message: WebsocketMessage) => void) => void;
subscribeToMessageName: (name: string, callback: (message: WebsocketMessage) => void) => void;
unsubscribeToMessageName: (name: string, callback: (message: WebsocketMessage) => void) => void;
unsubscribeFromAllMessages: (callback: (message: WebsocketMessage) => void) => void;
emit: (message: WebsocketMessage) => void;
connected: boolean;
};
export type WebsocketMessage = {
name: string,
type: string,
message: any
}
export const WebsocketContext = createContext<WebSocketContextType>({
socket: null,
subscribeToAllMessages: () =>{},
subscribeToMessageName: () =>{},
unsubscribeToMessageName: () =>{},
unsubscribeFromAllMessages: () =>{},
emit: () =>{},
connected: false,
});