UNPKG

@livelike/react-native

Version:

LiveLike React Native package

79 lines (78 loc) 2.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LLChatMessageMenuOption = LLChatMessageMenuOption; var _react = _interopRequireDefault(require("react")); var _reactNative = require("react-native"); var _hooks = require("../../hooks"); var _LLText = require("../LLText"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function LLChatMessageMenuOption(_ref) { let { icon, textDesc, divider = {}, onClickApiFn, styles: stylesProp } = _ref; const { isLoading, onApi: onClick } = (0, _hooks.useApi)(onClickApiFn); const menuItemStyles = (0, _hooks.useStyles)({ componentStylesFn: getChatMessageMenuOptionStyles, stylesProp }); const { hidePopover } = (0, _hooks.useMessageItemPopover)(); return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, divider.top && /*#__PURE__*/_react.default.createElement(_reactNative.View, { style: menuItemStyles.menuItemTopDivider }), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, { onPress: () => onClick().finally(hidePopover) }, /*#__PURE__*/_react.default.createElement(_reactNative.View, { style: menuItemStyles.menuItem }, isLoading ? /*#__PURE__*/_react.default.createElement(_reactNative.ActivityIndicator, { size: "small", style: menuItemStyles.menuItemIcon }) : /*#__PURE__*/_react.default.createElement(_reactNative.Image, { style: menuItemStyles.menuItemIcon, source: icon }), /*#__PURE__*/_react.default.createElement(_LLText.LLText, { style: menuItemStyles.menuItemText }, textDesc))), divider.bottom && /*#__PURE__*/_react.default.createElement(_reactNative.View, { style: menuItemStyles.menuItemBottomDivider })); } const getChatMessageMenuOptionStyles = _ref2 => { let { theme } = _ref2; return _reactNative.StyleSheet.create({ menuItem: { flexDirection: 'row', justifyContent: 'flex-start', alignItems: 'center', height: 45, padding: 5 }, menuItemText: { color: theme.text }, menuItemIcon: { height: 18, width: 18, marginRight: 10 }, menuItemTopDivider: { borderTopWidth: 1, borderTopColor: theme.border }, menuItemBottomDivider: { borderBottomWidth: 1, borderBottomColor: theme.border } }); }; //# sourceMappingURL=LLChatMessageMenuOption.js.map