All files / app/hooks use-message-events.ts

0% Statements 0/15
0% Branches 0/3
0% Functions 0/4
0% Lines 0/13

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 };
}