UNPKG

@four-leaf-studios/rl-socket-hook

Version:

A tiny React wrapper around a Rocket League WebSocket plugin (`ws://localhost:49122`). It provides:

25 lines (24 loc) • 1.02 kB
import React, { ReactNode } from "react"; import { PayloadStorage } from "./types"; type Subscriber = () => void; interface Store { getSnapshot<E extends keyof PayloadStorage>(eventName: E): PayloadStorage[E] | undefined; subscribe<E extends keyof PayloadStorage>(eventName: E, callback: Subscriber): () => void; send(event: string, data: any): void; readyState: number; error: Event | null; } export declare const RLContext: React.Context<Store | null>; export declare const RLProvider: React.FC<{ url?: string; children: ReactNode; }>; /** * Subscribe to the full payload of an event. */ export declare function useEvent<E extends keyof PayloadStorage>(eventName: E): PayloadStorage[E] | undefined; /** * Subscribe to a selected slice of the event payload. Re-renders only on actual changes. */ export declare function useEventSelector<E extends keyof PayloadStorage, U>(eventName: E, selector: (v: PayloadStorage[E] | undefined) => U, isEqual?: (a: U, b: U) => boolean): U; export {};