UNPKG

@sendbird/uikit-react-native-foundation

Version:

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

65 lines (64 loc) 2.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _reactNative = require("react-native"); var _uikitUtils = require("@sendbird/uikit-utils"); var _Modal = _interopRequireDefault(require("../../components/Modal")); var _useHeaderStyle = _interopRequireDefault(require("../../styles/useHeaderStyle")); var _DialogSheet = _interopRequireDefault(require("../Dialog/DialogSheet")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const BottomSheet = ({ onDismiss, onHide, visible, sheetItems, HeaderComponent }) => { const { statusBarTranslucent } = (0, _useHeaderStyle.default)(); const { width } = (0, _reactNative.useWindowDimensions)(); const safeArea = (0, _uikitUtils.useSafeAreaPadding)(['bottom', 'left', 'right']); return /*#__PURE__*/_react.default.createElement(_Modal.default, { type: 'slide', onClose: onHide, onDismiss: onDismiss, statusBarTranslucent: statusBarTranslucent, visible: visible, backgroundStyle: { alignItems: 'center', justifyContent: 'flex-end' } }, /*#__PURE__*/_react.default.createElement(_DialogSheet.default, { style: { width, paddingBottom: safeArea.paddingBottom } }, HeaderComponent && /*#__PURE__*/_react.default.createElement(HeaderComponent, { onClose: onHide }), sheetItems.map(({ onPress, ...props }, idx) => /*#__PURE__*/_react.default.createElement(_reactNative.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.default.createElement(_DialogSheet.default.Item, props))))); }; var _default = exports.default = BottomSheet; //# sourceMappingURL=index.js.map