@sendbird/uikit-react-native-foundation
Version:
A foundational UI kit for building chat-enabled React Native apps.
65 lines (64 loc) • 2.04 kB
JavaScript
"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