@@ -42,20 +42,38 @@ type ModalComponentProps = (ReactNativeModalProps | ReanimatedModalProps) & {
4242 initialFocus ?: FocusTrapOptions [ 'initialFocus' ] ;
4343} ;
4444
45- function ModalComponent ( { type, shouldUseReanimatedModal, ...props } : ModalComponentProps ) {
45+ function ModalComponent ( { type, shouldUseReanimatedModal, isVisible , shouldPreventScrollOnFocus , initialFocus , children , ...props } : ModalComponentProps ) {
4646 // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
4747 if ( ( type && REANIMATED_MODAL_TYPES . includes ( type ) ) || shouldUseReanimatedModal ) {
4848 return (
4949 < ReanimatedModal
5050 // eslint-disable-next-line react/jsx-props-no-spreading
5151 { ...( props as ReanimatedModalProps ) }
5252 type = { type }
53- />
53+ isVisible = { isVisible }
54+ shouldPreventScrollOnFocus = { shouldPreventScrollOnFocus }
55+ initialFocus = { initialFocus }
56+ >
57+ { children }
58+ </ ReanimatedModal >
5459 ) ;
5560 }
5661
57- // eslint-disable-next-line react/jsx-props-no-spreading
58- return < ReactNativeModal { ...( props as ReactNativeModalProps ) } /> ;
62+ return (
63+ < ReactNativeModal
64+ // eslint-disable-next-line react/jsx-props-no-spreading
65+ { ...( props as ReactNativeModalProps ) }
66+ isVisible = { isVisible }
67+ >
68+ < FocusTrapForModal
69+ active = { isVisible ?? false }
70+ initialFocus = { initialFocus }
71+ shouldPreventScroll = { shouldPreventScrollOnFocus }
72+ >
73+ { children }
74+ </ FocusTrapForModal >
75+ </ ReactNativeModal >
76+ ) ;
5977}
6078
6179function BaseModal (
@@ -413,28 +431,13 @@ function BaseModal(
413431 onModalWillShow = { saveFocusState }
414432 onDismiss = { handleDismissModal }
415433 >
416- { type && ! REANIMATED_MODAL_TYPES . includes ( type ) && ! shouldUseReanimatedModal ? (
417- < FocusTrapForModal
418- active = { isVisible }
419- initialFocus = { initialFocus }
420- shouldPreventScroll = { shouldPreventScrollOnFocus }
421- >
422- < Animated . View
423- style = { [ styles . defaultModalContainer , modalContainerStyle , modalPaddingStyles , ! isVisible && styles . pointerEventsNone , sidePanelReanimatedStyle ] }
424- ref = { ref }
425- >
426- < ColorSchemeWrapper > { children } </ ColorSchemeWrapper >
427- </ Animated . View >
428- </ FocusTrapForModal >
429- ) : (
430- < Animated . View
431- onLayout = { onViewLayout }
432- style = { [ styles . defaultModalContainer , modalContainerStyle , modalPaddingStyles , ! isVisible && styles . pointerEventsNone , sidePanelReanimatedStyle ] }
433- ref = { ref }
434- >
435- < ColorSchemeWrapper > { children } </ ColorSchemeWrapper >
436- </ Animated . View >
437- ) }
434+ < Animated . View
435+ onLayout = { onViewLayout }
436+ style = { [ styles . defaultModalContainer , modalContainerStyle , modalPaddingStyles , ! isVisible && styles . pointerEventsNone , sidePanelReanimatedStyle ] }
437+ ref = { ref }
438+ >
439+ < ColorSchemeWrapper > { children } </ ColorSchemeWrapper >
440+ </ Animated . View >
438441 </ ModalContent >
439442 { ! keyboardStateContextValue ?. isKeyboardActive && < NavigationBar /> }
440443 </ ModalComponent >
0 commit comments