import React, { useEffect } from 'react';
import { Platform, View } from 'react-native';
import type { ViewProps } from 'react-native';
import useEvent from '../hooks/use-event';
import type { IEvent } from '../hooks/use-event-store';
import deepClone from '../utils/deep-clone';
export default function Container(props: ViewProps) {
const { events, skippedEventId, setSkippedEventId } = useEvent();
const runEvents = () => {
events.forEach((event: IEvent) => {
if (event.id === (global as any).rnopSkippedEventId) return;
if (event.disabled) return;
event.onOutsidePress();
});
if ((global as any).rnopSkippedEventId) setSkippedEventId('');
};
useEffect(() => {
if (skippedEventId) runEvents();
}, [skippedEventId]);
return Platform.select({
web: (
{deepClone(props.children, runEvents)}
),
default: (
{props.children}
),
});
}