react-email-builder
Version:
A simple React drag and drop email builder.
36 lines (35 loc) • 1.69 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Button = void 0;
const clsx_1 = __importDefault(require("clsx"));
const react_1 = __importDefault(require("react"));
const Icon_1 = require("../../components/Icon");
const utils_1 = require("../../utils");
function Button({ className, loading, children, style, block, size, secondary, icon, plain, onClick }) {
const css = (0, utils_1.getCss)('Button', (ns) => ({
root: ns(),
icon: ns('icon'),
spin: (0, clsx_1.default)(ns('icon'), ns('spin')),
text: ns('text'),
loading: ns('loading'),
input: ns('input'),
inline: ns('inline'),
small: ns('small'),
primary: ns('primary'),
plain: ns('plain')
}));
return (react_1.default.createElement("div", { className: (0, clsx_1.default)(css.root, className, {
[css.loading]: loading,
[css.inline]: !block,
[css.small]: size === 'small',
[css.primary]: !secondary && !plain,
[css.plain]: plain
}), style: style, onClick: onClick, role: "button" },
loading ? (react_1.default.createElement("div", { className: css.spin },
react_1.default.createElement(Icon_1.Icon, { name: "loading" }))) : (react_1.default.createElement(react_1.default.Fragment, null, icon ? react_1.default.createElement("div", { className: css.icon }, icon) : null)),
react_1.default.createElement("div", { className: css.text }, children)));
}
exports.Button = Button;