import {useCallback} from 'react' import {type StyleProp, type ViewStyle} from 'react-native' import {requireNativeModule, requireNativeViewManager} from 'expo-modules-core' import {type VisibilityViewProps} from './types' const NativeView: React.ComponentType<{ onChangeStatus: (e: {nativeEvent: {isActive: boolean}}) => void children: React.ReactNode enabled: boolean style: StyleProp }> = requireNativeViewManager('ExpoBlueskyVisibilityView') const NativeModule = requireNativeModule('ExpoBlueskyVisibilityView') export async function updateActiveViewAsync() { await NativeModule.updateActiveViewAsync() } export default function VisibilityView({ children, onChangeStatus: onChangeStatusOuter, enabled, }: VisibilityViewProps) { const onChangeStatus = useCallback( (e: {nativeEvent: {isActive: boolean}}) => { onChangeStatusOuter(e.nativeEvent.isActive) }, [onChangeStatusOuter], ) return ( {children} ) }