UNPKG

react-native-whip-whep

Version:

An implementation of WHIP and WHEP protocols functionalities for React Native.

32 lines 1.22 kB
import { useEffect } from "react"; import { ZodError } from "zod"; import nativeModule from "../ReactNativeMobileWhepClientModule"; import { validateNativeEventPayload } from "./eventPayloadValidator"; export function useEvent(eventName, callback) { useEffect(() => { const eventListener = nativeModule.addListener(eventName, (event) => { const payload = event[eventName]; callback(payload); }); return () => eventListener.remove(); }, [callback, eventName]); } export function validateAndLogEventPayload(eventName, payload) { // Double check just to make sure if (!__DEV__) return; try { validateNativeEventPayload(eventName, payload); } catch (error) { if (error instanceof ZodError) { console.error(`Invalid payload received for event ${eventName}:\n`, error.errors .map((err) => `- ${err.path.join(".")}: ${err.message}`) .join("\n"), `\n Received:\n${JSON.stringify(payload, null, 2)}\n\n`); } else { console.error(`Unexpected error validating payload for event ${eventName}:`, error); } } } //# sourceMappingURL=useEvent.js.map