UNPKG

@mui/x-data-grid

Version:

The Community plan edition of the Data Grid components (MUI X).

36 lines 1.13 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import * as React from 'react'; import clsx from 'clsx'; /** * Resolves the rendering logic for a component. * Handles three scenarios: * 1. A render function that receives props and state * 2. A React element * 3. A default element * * @ignore - internal hook. */ export function useGridComponentRenderer(defaultElement, render, props, state = {}) { if (typeof render === 'function') { return render(props, state); } if (render) { if (render.props.className) { props.className = clsx(render.props.className, props.className); } if (render.props.style || props.style) { props.style = _extends({}, props.style, render.props.style); } if (render.props.sx || props.sx) { props.sx = mergeSx(props.sx, render.props.sx); } return /*#__PURE__*/React.cloneElement(render, props); } return /*#__PURE__*/React.createElement(defaultElement, props); } function mergeSx(sx1, sx2) { if (!sx1 || !sx2) { return sx1 || sx2; } return (Array.isArray(sx1) ? sx1 : [sx1]).concat(Array.isArray(sx2) ? sx2 : [sx2]); }