@vs-form/vs-form
Version:
A schema-based form generator component for React using material-ui
36 lines (33 loc) • 1.34 kB
JavaScript
import { createElement } from 'react';
import Tooltip from '@material-ui/core/Tooltip';
import classNames from 'classnames';
import Icon from '@material-ui/core/Icon';
import SvgIcon from '@material-ui/core/SvgIcon';
const BaseIcon = (props) => {
let ic;
if (props['icon']) {
const p = props;
const { tooltip, tooltipProps, icon, ...other } = p;
const cl = classNames('mdi', 'mdi-' + icon, p.className);
ic = createElement(Icon, Object.assign({}, other, { className: cl }));
}
else if (props['svg']) {
const p = props;
const { tooltip, tooltipProps, svg, ...other } = p;
ic = (createElement(SvgIcon, Object.assign({}, other),
createElement("path", { d: p.svg })));
}
else if (props['component']) {
const p = props;
const { tooltip, tooltipProps, component, ...other } = p;
ic = (createElement(SvgIcon, Object.assign({}, other, { component: p.component })));
}
if (ic) {
return props.tooltip ? createElement(Tooltip, Object.assign({ title: props.tooltip }, props.tooltipProps),
createElement("span", null, ic)) : ic;
}
else {
return createElement("div", null, "Icon: property icon, svg or component must be provided");
}
};
export { BaseIcon as a };