silphius/app/react/context/client.js
2024-07-31 09:29:33 -05:00

25 lines
520 B
JavaScript

import {createContext, useContext, useEffect} from 'react';
const context = createContext();
export default context;
export function useClient() {
return useContext(context);
}
export function usePacket(type, fn) {
const client = useClient();
useEffect(() => {
if (!client) {
return;
}
function listener(payload) {
fn(payload, client);
}
client.addPacketListener(type, listener);
return () => {
client.removePacketListener(type, listener);
};
}, [client, fn]);
}