UNPKG

@vs-form/vs-form

Version:

A schema-based form generator component for React using material-ui

36 lines (33 loc) 1.34 kB
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 };