@uiw/react-markdown-editor
Version:
A markdown editor with preview, implemented with React.js and TypeScript.
91 lines (73 loc) • 3.33 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = ToolBar;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireWildcard(require("react"));
var _commands = require("../../commands");
var _jsxRuntime = require("react/jsx-runtime");
var _excluded = ["prefixCls", "className", "onClick", "toolbars", "editor", "mode", "preview", "container", "containerEditor", "editorProps"];
function ToolBar(props) {
var _props$prefixCls = props.prefixCls,
prefixCls = _props$prefixCls === void 0 ? 'md-editor' : _props$prefixCls,
className = props.className,
onClick = props.onClick,
_props$toolbars = props.toolbars,
toolbars = _props$toolbars === void 0 ? [] : _props$toolbars,
editor = props.editor,
mode = props.mode,
preview = props.preview,
container = props.container,
containerEditor = props.containerEditor,
_props$editorProps = props.editorProps,
editorProps = _props$editorProps === void 0 ? {} : _props$editorProps,
htmlProps = (0, _objectWithoutProperties2.default)(props, _excluded);
if (!toolbars || toolbars.length === 0) return null;
function handleClick(execute) {
if (execute && editor && editor) {
execute(editor.current);
}
}
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", (0, _objectSpread2.default)((0, _objectSpread2.default)({
className: "".concat(prefixCls, "-toolbar ").concat(className || '', " ").concat(mode ? "".concat(prefixCls, "-toolbar-mode") : '')
}, htmlProps), {}, {
children: (0, _toConsumableArray2.default)(toolbars).map(function (command, key) {
var buttonProps = {
type: 'button'
};
var obj = typeof command === 'string' ? _commands.defaultCommands[command] : command;
if (!obj) return null;
buttonProps.children = obj.icon;
buttonProps.onClick = function () {
return handleClick(obj.execute);
};
if (obj.button && (0, _typeof2.default)(obj.button) === 'object') {
var btn = obj.button;
Object.keys(btn).forEach(function (key) {
buttonProps[key] = btn[key];
});
} else if (typeof obj.button === 'function') {
return /*#__PURE__*/_react.default.cloneElement(obj.button(obj, editorProps, {
preview: preview,
container: container,
containerEditor: containerEditor,
editor: editor,
editorProps: editorProps
}), {
key: key
});
}
return /*#__PURE__*/(0, _react.createElement)("button", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, buttonProps), {}, {
key: key
}));
})
}));
}
module.exports = exports.default;
//# sourceMappingURL=index.js.map