UNPKG

mapwize-ui-react-native

Version:

Fully featured and ready to use UI to add Mapwize Indoor Maps and Navigation in your React Native app.

132 lines (125 loc) 3.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _reactNative = require("react-native"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const Selector = ({ style, isExpanded, isHidden, data, icon, tooltipMessage, renderText, isSelected, onSelected, onClick }) => { return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactNative.Modal, { animationType: "fade", transparent: true, visible: isExpanded, onRequestClose: () => onClick() }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableWithoutFeedback, { onPress: onClick }, /*#__PURE__*/_react.default.createElement(_reactNative.View, { style: styles.gray }, /*#__PURE__*/_react.default.createElement(_reactNative.View, { style: [styles.universeList, isExpanded && styles.isExpanded, isHidden && styles.isHidden] }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, { style: styles.headerText }, tooltipMessage), /*#__PURE__*/_react.default.createElement(_reactNative.View, { style: styles.headerSepartor }), isExpanded && (data === null || data === void 0 ? void 0 : data.map((object, index) => /*#__PURE__*/_react.default.createElement(_reactNative.Text, { style: [styles.item, (isSelected === null || isSelected === void 0 ? void 0 : isSelected(object)) && styles.selected, isHidden && styles.isHidden], key: index, onPress: () => onSelected === null || onSelected === void 0 ? void 0 : onSelected(object) }, renderText === null || renderText === void 0 ? void 0 : renderText(object)))))))), /*#__PURE__*/_react.default.createElement(_reactNative.View, { style: [style, styles.universeSelector, isHidden && styles.isHidden, isExpanded && styles.buttonExpanded], accessibilityLabel: tooltipMessage }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableHighlight, { style: [styles.icon, isHidden && styles.isHidden], activeOpacity: 0.6, underlayColor: "#DDDDDD", onPress: onClick }, /*#__PURE__*/_react.default.createElement(_reactNative.Image, { style: [styles.image], source: icon })))); }; const styles = _reactNative.StyleSheet.create({ universeSelector: { flexDirection: 'column-reverse', backgroundColor: 'white', borderRadius: 28, height: 56, width: 56, justifyContent: 'center', alignItems: 'center', shadowOffset: { width: 0, height: 2 }, shadowOpacity: 0.2, shadowRadius: 2, elevation: 2 }, gray: { flex: 1, backgroundColor: '#5559', justifyContent: 'center' }, icon: { borderRadius: 32, padding: 8 }, image: { height: 24, width: 24 }, selected: { fontWeight: 'bold' }, isHidden: { display: 'none' }, universeList: { alignSelf: 'center', alignItems: 'center', backgroundColor: 'white', borderRadius: 16, opacity: 1, shadowOffset: { width: 0, height: 2 }, shadowOpacity: 0.2, shadowRadius: 2, elevation: 8 }, isExpanded: { display: 'flex' }, buttonExpanded: { backgroundColor: 'lightgray' }, item: { padding: 16 }, headerText: { paddingVertical: 16, paddingHorizontal: 32, fontWeight: 'bold' }, headerSepartor: { backgroundColor: 'lightgray', height: 1, alignSelf: 'stretch' } }); var _default = Selector; exports.default = _default; //# sourceMappingURL=selector.js.map