diff options
Diffstat (limited to 'src/components/Dialog')
-rw-r--r-- | src/components/Dialog/index.web.tsx | 10 | ||||
-rw-r--r-- | src/components/Dialog/types.ts | 21 |
2 files changed, 18 insertions, 13 deletions
diff --git a/src/components/Dialog/index.web.tsx b/src/components/Dialog/index.web.tsx index 1417e9e91..7e10dfadc 100644 --- a/src/components/Dialog/index.web.tsx +++ b/src/components/Dialog/index.web.tsx @@ -2,6 +2,7 @@ import React, {useImperativeHandle} from 'react' import { FlatList, type FlatListProps, + type GestureResponderEvent, type StyleProp, TouchableWithoutFeedback, View, @@ -75,9 +76,12 @@ export function Outer({ [control.id, onClose, setDialogIsOpen], ) - const handleBackgroundPress = React.useCallback(async () => { - close() - }, [close]) + const handleBackgroundPress = React.useCallback( + async (e: GestureResponderEvent) => { + webOptions?.onBackgroundPress ? webOptions.onBackgroundPress(e) : close() + }, + [webOptions, close], + ) useImperativeHandle( control.ref, diff --git a/src/components/Dialog/types.ts b/src/components/Dialog/types.ts index 3ca64a321..1308e625c 100644 --- a/src/components/Dialog/types.ts +++ b/src/components/Dialog/types.ts @@ -1,15 +1,15 @@ -import React from 'react' -import type { - AccessibilityProps, - GestureResponderEvent, - ScrollViewProps, +import { + type AccessibilityProps, + type GestureResponderEvent, + type ScrollViewProps, + type StyleProp, + type ViewStyle, } from 'react-native' -import {ViewStyle} from 'react-native' -import {StyleProp} from 'react-native' +import type React from 'react' -import {ViewStyleProp} from '#/alf' -import {BottomSheetViewProps} from '../../../modules/bottom-sheet' -import {BottomSheetSnapPoint} from '../../../modules/bottom-sheet/src/BottomSheet.types' +import {type ViewStyleProp} from '#/alf' +import {type BottomSheetViewProps} from '../../../modules/bottom-sheet' +import {type BottomSheetSnapPoint} from '../../../modules/bottom-sheet/src/BottomSheet.types' type A11yProps = Required<AccessibilityProps> @@ -64,6 +64,7 @@ export type DialogOuterProps = { nativeOptions?: Omit<BottomSheetViewProps, 'children'> webOptions?: { alignCenter?: boolean + onBackgroundPress?: (e: GestureResponderEvent) => void } testID?: string } |