@wordpress/components
Version:
UI components for WordPress.
96 lines (81 loc) • 2.92 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _element = require("@wordpress/element");
var _reactNative = require("react-native");
var _components = require("@wordpress/components");
var _compose = require("@wordpress/compose");
var _i18n = require("@wordpress/i18n");
var _style = _interopRequireDefault(require("./style.scss"));
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
class MenuItem extends _element.Component {
constructor() {
super(...arguments);
this.onPress = this.onPress.bind(this);
}
onPress() {
const {
onSelect,
item
} = this.props;
onSelect(item);
}
render() {
const {
getStylesFromColorScheme,
item,
itemWidth,
maxWidth
} = this.props;
const modalIconWrapperStyle = getStylesFromColorScheme(_style.default.modalIconWrapper, _style.default.modalIconWrapperDark);
const modalIconStyle = getStylesFromColorScheme(_style.default.modalIcon, _style.default.modalIconDark);
const modalItemLabelStyle = getStylesFromColorScheme(_style.default.modalItemLabel, _style.default.modalItemLabelDark);
const clipboardBlockStyles = getStylesFromColorScheme(_style.default.clipboardBlock, _style.default.clipboardBlockDark);
const isClipboardBlock = item.id === 'clipboard';
const blockTitle = isClipboardBlock ? (0, _i18n.__)('Copied block') : item.title;
return (0, _element.createElement)(_reactNative.TouchableHighlight, {
style: [_style.default.touchableArea, item.isDisabled ? _style.default.disabled : null],
underlayColor: "transparent",
activeOpacity: 0.5,
accessibilityRole: "button",
accessibilityLabel: `${item.title} block`,
onPress: this.onPress,
disabled: item.isDisabled
}, (0, _element.createElement)(_reactNative.View, {
style: [_style.default.modalItem, {
width: maxWidth
}]
}, (0, _element.createElement)(_reactNative.View, {
style: [modalIconWrapperStyle, itemWidth && {
width: itemWidth
}, isClipboardBlock && clipboardBlockStyles]
}, (0, _element.createElement)(_reactNative.View, {
style: modalIconStyle
}, (0, _element.createElement)(_components.Icon, {
icon: item.icon.src || item.icon,
fill: modalIconStyle.fill,
size: modalIconStyle.width
}))), (0, _element.createElement)(_reactNative.Text, {
style: modalItemLabelStyle
}, blockTitle)));
}
}
const InserterButton = (0, _compose.withPreferredColorScheme)(MenuItem);
InserterButton.Styles = {
modalItem: _style.default.modalItem,
modalIconWrapper: _style.default.modalIconWrapper
};
var _default = InserterButton;
exports.default = _default;
//# sourceMappingURL=index.native.js.map