import { useEffect, useState } from "react"; import type { Emitter } from "../emitter"; export const useEmitter = ( emitter: Emitter<[TEvent]>, initialState: TEvent, ) => { const [event, setEvent] = useState(initialState); useEffect(() => { const unsubscribe = emitter.on((event) => { setEvent(event); }); return () => { unsubscribe(); }; }, [emitter]); return event; };