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
JavaScript
"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