UNPKG

@wordpress/components

Version:
38 lines (35 loc) 834 B
/** * External dependencies */ import { View } from 'react-native'; /** * WordPress dependencies */ import { useCallback, useState } from '@wordpress/element'; import { createHigherOrderComponent, __experimentalUseFocusOutside as useFocusOutside, } from '@wordpress/compose'; export default createHigherOrderComponent( ( WrappedComponent ) => ( props ) => { const [ handleFocusOutside, setHandleFocusOutside ] = useState(); const bindFocusOutsideHandler = useCallback( ( node ) => setHandleFocusOutside( () => node?.handleFocusOutside ? node.handleFocusOutside.bind( node ) : undefined ), [] ); return ( <View { ...useFocusOutside( handleFocusOutside ) }> <WrappedComponent ref={ bindFocusOutsideHandler } { ...props } /> </View> ); }, 'withFocusOutside' );