@livelike/react-native
Version:
LiveLike React Native package
79 lines (78 loc) • 2.47 kB
JavaScript
"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