@devvie/bottom-sheet
Version:
The 😎smart , 📦tiny , and 🎗flexible bottom sheet your app craves 🚀
56 lines (55 loc) • 1.98 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 _animatedTouchableBackdropMask = _interopRequireDefault(require("../animatedTouchableBackdropMask"));
var _types = require("../../types.d");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Abstracted, polymorphic backdrop that handles custom and default backdrop
*/
const Backdrop = _ref => {
let {
BackdropComponent,
backdropPosition = _types.CUSTOM_BACKDROP_POSITIONS.BEHIND,
sheetOpen,
containerHeight,
contentContainerHeight,
_animatedHeight,
closeOnPress,
rippleColor,
pressHandler,
animatedBackdropOpacity,
backdropColor
} = _ref;
const heightStyle = sheetOpen ? containerHeight - contentContainerHeight : 0;
return BackdropComponent ? /*#__PURE__*/_react.default.createElement(_reactNative.View, {
style: backdropPosition === _types.CUSTOM_BACKDROP_POSITIONS.BEHIND ? _reactNative.StyleSheet.absoluteFillObject : {
height: heightStyle
}
}, /*#__PURE__*/_react.default.createElement(BackdropComponent, {
_animatedHeight: _animatedHeight
})) : closeOnPress ? /*#__PURE__*/_react.default.createElement(_animatedTouchableBackdropMask.default, {
isPressable: true,
android_touchRippleColor: rippleColor,
pressHandler: pressHandler,
style: {
opacity: animatedBackdropOpacity,
backgroundColor: backdropColor
},
touchSoundDisabled: true,
key: 'TouchableBackdropMask'
}) : /*#__PURE__*/_react.default.createElement(_animatedTouchableBackdropMask.default, {
isPressable: false,
style: {
opacity: animatedBackdropOpacity,
backgroundColor: backdropColor
},
key: 'TouchableBackdropMask'
});
};
var _default = exports.default = Backdrop;
//# sourceMappingURL=index.js.map