UNPKG

react-native-unit-components

Version:

Unit React Native components

33 lines (25 loc) 913 B
/* eslint-disable @typescript-eslint/no-explicit-any */ import { useEffect, useRef } from 'react'; import { useSelector } from 'react-redux'; import type { RootState } from '../store'; import type { NativeMessageType } from '../messages/nativeMessages'; import type { WebViewMessageType } from '../messages/webMessages'; export type BusEventKey = NativeMessageType | WebViewMessageType type EventListener = { busEventKey: BusEventKey, action: (data: any) => void } export const useListenerToEvent = (listener: EventListener) => { const isFirstRun = useRef(true); const event = useSelector((state: RootState) => state.sharedEvents.event); useEffect(() => { if (isFirstRun.current) { isFirstRun.current = false; return; } if (event == null || event == undefined || event?.key != listener.busEventKey) { return; } listener.action(event.data); }, [event]); };