UNPKG

react-email-builder

Version:
29 lines (28 loc) 1.26 kB
import clsx from 'clsx'; import React from 'react'; import { Icon } from '../../components/Icon'; import { getCss } from '../../utils'; export function Button({ className, loading, children, style, block, size, secondary, icon, plain, onClick }) { const css = getCss('Button', (ns) => ({ root: ns(), icon: ns('icon'), spin: clsx(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.createElement("div", { className: clsx(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.createElement("div", { className: css.spin }, React.createElement(Icon, { name: "loading" }))) : (React.createElement(React.Fragment, null, icon ? React.createElement("div", { className: css.icon }, icon) : null)), React.createElement("div", { className: css.text }, children))); }