UNPKG

@uiw/react-md-editor

Version:

A markdown editor with preview, implemented with React.js and TypeScript.

85 lines (73 loc) 3.23 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Toolbar; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _react = _interopRequireDefault(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _Child = _interopRequireDefault(require("./Child")); function Toolbar() { var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var prefixCls = props.prefixCls, _props$commands = props.commands, commands = _props$commands === void 0 ? [] : _props$commands, _props$commandHelp = props.commandHelp, commandHelp = _props$commandHelp === void 0 ? {} : _props$commandHelp, active = props.active, groupName = props.groupName; function handleClick(command, name) { var onCommand = props.onCommand; onCommand && onCommand(command, groupName || name); } return /*#__PURE__*/_react.default.createElement("div", { className: "".concat(prefixCls, "-toolbar") }, /*#__PURE__*/_react.default.createElement("ul", null, commands.map(function (item, idx) { if (item.keyCommand === 'divider') { return /*#__PURE__*/_react.default.createElement("li", (0, _extends2.default)({ key: idx }, item.liProps, { className: "".concat(prefixCls, "-toolbar-divider") })); } if (!item.keyCommand) return; var activeBtn = active && (item.value ? active[item.keyCommand] && active[item.keyCommand] === item.value : active[item.keyCommand]); var childNode = typeof item.children === 'function' ? item.children((0, _objectSpread2.default)({ close: function close() { return handleClick({}, item.groupName); }, execute: function execute() { return handleClick({ execute: item.execute }); } }, commandHelp)) : undefined; return /*#__PURE__*/_react.default.createElement("li", (0, _extends2.default)({ key: idx }, item.liProps, { className: (0, _classnames.default)({ active: activeBtn }) }), !item.buttonProps && item.icon, item.buttonProps && /*#__PURE__*/_react.default.createElement('button', (0, _objectSpread2.default)((0, _objectSpread2.default)({ type: 'button', disabled: active && active.preview && active.preview === 'preview' && !/(preview|fullscreen)/.test(item.keyCommand), 'data-name': item.name }, item.buttonProps), {}, { onClick: function onClick(evn) { evn.stopPropagation(); handleClick(item, item.groupName); } }), item.icon), item.children && /*#__PURE__*/_react.default.createElement(_Child.default, { active: active, groupName: item.groupName, prefixCls: prefixCls, onCommand: props.onCommand, children: childNode, commands: Array.isArray(item.children) && typeof item.children !== 'function' ? item.children : undefined })); }))); } module.exports = exports.default; //# sourceMappingURL=index.js.map