JSFiddle - React, Tailwind, and code Playground

by liamness

HTML

<script src="https://unpkg.com/[email protected]/prop-types.js"></script>

JavaScript

const propTypes = {
  schema: PropTypes.arrayOf(
    PropTypes.oneOfType([
      PropTypes.shape({
        element: PropTypes.oneOfType([
          PropTypes.string,
          PropTypes.element,
          PropTypes.func,
          PropTypes.node,
          PropTypes.object,
        ]),
        name: PropTypes.string.required,
        properties: PropTypes.object,
        children: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.object)]),
      }),
      PropTypes.string,
    ])
  ),
};

const props = {
	schema: [
    'form',
    {
      element: 'div',
      name: 'buttons',
      properties: { className: 'a-class-name' },
      children: [ {} ]
    }
  ]
};

PropTypes.checkPropTypes(propTypes, props, 'prop', 'ComponentName');