Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import { useEffect, useState } from 'react'; import { Subject } from 'rxjs'; export const messages$ = new Subject<any>(); const handler = (e: MessageEvent) => { Iif (e.origin !== 'file://' && e.source !== window) return; messages$.next(e.data); }; window.addEventListener('message', handler); export function useMessageEvents() { const [message, setMessage] = useState<unknown>(); useEffect(() => { const sub = messages$.subscribe(message => setMessage(message)); return sub.unsubscribe; }, []); return { message }; } |