Skip to content

Commit 1fd92bd

Browse files
committed
fix: refactor
1 parent 0444c8d commit 1fd92bd

1 file changed

Lines changed: 29 additions & 26 deletions

File tree

src/components/Modal/BaseModal.tsx

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -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

6179
function 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

Comments
 (0)