UNPKG

@sendbird/uikit-react-native-foundation

Version:

A foundational UI kit for building chat-enabled React Native apps.

58 lines 1.62 kB
import React from 'react'; import { TouchableOpacity, useWindowDimensions } from 'react-native'; import { useSafeAreaPadding } from '@sendbird/uikit-utils'; import Modal from '../../components/Modal'; import useHeaderStyle from '../../styles/useHeaderStyle'; import DialogSheet from '../Dialog/DialogSheet'; const BottomSheet = ({ onDismiss, onHide, visible, sheetItems, HeaderComponent }) => { const { statusBarTranslucent } = useHeaderStyle(); const { width } = useWindowDimensions(); const safeArea = useSafeAreaPadding(['bottom', 'left', 'right']); return /*#__PURE__*/React.createElement(Modal, { type: 'slide', onClose: onHide, onDismiss: onDismiss, statusBarTranslucent: statusBarTranslucent, visible: visible, backgroundStyle: { alignItems: 'center', justifyContent: 'flex-end' } }, /*#__PURE__*/React.createElement(DialogSheet, { style: { width, paddingBottom: safeArea.paddingBottom } }, HeaderComponent && /*#__PURE__*/React.createElement(HeaderComponent, { onClose: onHide }), sheetItems.map(({ onPress, ...props }, idx) => /*#__PURE__*/React.createElement(TouchableOpacity, { activeOpacity: 0.75, key: props.title + idx, style: { paddingStart: safeArea.paddingStart, paddingEnd: safeArea.paddingEnd }, disabled: props.disabled, onPress: async () => { await onHide(); try { onPress(); } catch {} } }, /*#__PURE__*/React.createElement(DialogSheet.Item, props))))); }; export default BottomSheet; //# sourceMappingURL=index.js.map