Repository URL to install this package:
|
Version:
1.2.13 ▾
|
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createElementWithClassName = createElementWithClassName;
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _exotic = require("exotic");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
// @see https://reactjs.org/docs/react-api.html#isvalidelement
function createElementWithClassName(tagName, className = 'NOCLASS', displayName) {
// we actually DO NOT WANT THIS camelCase(className)
const name = displayName || className || `CreatedWithClass<${tagName}>`;
if ((0, _exotic.isString)(tagName) === false && _react.default.isValidElement(tagName) === false) {
console.log({
tagName,
className
});
throw new Error(`createElementWithClassName with ${tagName}.${className} is not valid`);
} // @TODO support activeclass as toggle + selectorless
const factory = props => {
// combine custom className if any
const finalClassName = [className, props.className].join(' ');
const creation = _react.default.createElement(tagName, _objectSpread({
// displayName: name,
className: finalClassName
}, props)); // creation.displayName = displayName || 'CreatedWithClass'
return creation;
};
factory.displayName = name;
return factory; // const factory = React.createFactory(tagName, { className })
// if (displayName) {
// factory.name = displayName
// }
// return factory
// return function(props) {
// return factory({ , ...props })
// }
}
var _default = createElementWithClassName;
exports.default = _default;