UNPKG

@coreui/react

Version:

CoreUI React 17 Bootstrap 4 components

72 lines (61 loc) 3.11 kB
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty"; import _extends from "@babel/runtime/helpers/esm/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } import React from 'react'; import PropTypes from 'prop-types'; import classNames from 'classnames'; import { NavLink } from 'react-router-dom'; //component - CoreUI / CLink var CLink = function CLink(props) { var className = props.className, innerRef = props.innerRef, active = props.active, href = props.href, onClick = props.onClick, disabled = props.disabled, rest = _objectWithoutPropertiesLoose(props, ["className", "innerRef", "active", "href", "onClick", "disabled"]); var to = rest ? rest.to : null; var click = function click(e) { if (!href && !to || href === '#') { e.preventDefault(); } !disabled && onClick && onClick(e); }; // render var classes = classNames(active && 'active', disabled && 'disabled', className); return to ? /*#__PURE__*/React.createElement(NavLink, _extends({}, rest, { className: classes, onClick: click, ref: innerRef })) : /*#__PURE__*/React.createElement("a", _extends({ href: href || '#', className: classes, rel: rest.target === '_blank' ? 'noopener norefferer' : null }, rest, { onClick: click, ref: innerRef })); }; CLink.propTypes = _objectSpread(_objectSpread({ // innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func]), active: PropTypes.bool, href: PropTypes.string, onClick: PropTypes.func, disabled: PropTypes.bool }, NavLink.propTypes), {}, { className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]), to: PropTypes.oneOfType([PropTypes.object, PropTypes.string, PropTypes.func]) }); // CLink.sortAttributes = (attributesToSort) => { // const attributes = {} // const linkProps = {} // Object.entries(attributesToSort || {}).forEach(([key, value]) => { // if (Object.keys(CLink.propTypes).includes(key)) { // linkProps[key] = value // } else { // attributes[key] = value // } // }) // return { linkProps, attributes } // } export default CLink;