@lobstar/preact
Version:
A collection of Preact hooks to use Lobstar library for network and lobby management for multiplayer web games
19 lines (18 loc) • 567 B
JavaScript
import { useState, useEffect } from "preact/hooks";
/**
* Hook to track session state changes
*/
export function useSessionState(session) {
const [state, setState] = useState(session ? session.getState() : null);
useEffect(() => {
if (!session)
return;
const handleStateChange = ({ state: newState, }) => {
setState(newState);
};
const unsubscribe = session.on("stateChange", handleStateChange);
setState(session.getState());
return unsubscribe;
}, [session]);
return state;
}