UNPKG

vue-styleguidist

Version:
37 lines (36 loc) 1.63 kB
import "core-js/modules/es.function.name.js"; import "core-js/modules/es.regexp.exec.js"; import "core-js/modules/es.string.replace.js"; import React from 'react'; import Text from 'rsg-components/Text'; import Code from 'rsg-components/Code'; import { unquote, showSpaces } from './util'; // to keep showing those vluei insead of empty, we treat them separaty var defaultValueBlacklist = ['null', 'undefined', "''", '""']; export default function renderDefaultHoc(classes) { return function renderDefault(prop) { return /*#__PURE__*/React.createElement("p", { className: classes["default"] }, function () { // Workaround for issue https://github.com/reactjs/react-docgen/issues/221 // If prop has defaultValue it can not be required if (prop.defaultValue) { if (prop.type) { var propName = prop.type.name; if (defaultValueBlacklist.indexOf(prop.defaultValue.value) > -1) { return /*#__PURE__*/React.createElement(Code, null, prop.defaultValue.value); } else if (propName === 'func' || propName === 'function' || /^\(\s*\)\s*=>\s*\(?\s*\{(?!^(?:\s*\}\s*\)?))/.test(prop.defaultValue.value)) { return /*#__PURE__*/React.createElement(Text, { size: "small", color: "light", underlined: true, title: showSpaces(unquote(prop.defaultValue.value)) }, "Function"); } } return /*#__PURE__*/React.createElement(Code, null, showSpaces(unquote(prop.defaultValue.value.replace(/^\(\s*\)\s*=>\s*/, '')))); } return '-'; }()); }; }