UNPKG

react-fantastic

Version:

Fantastic react component library

40 lines 1.48 kB
import React, { Component } from 'react'; import { Link } from 'react-router-dom'; import PropTypes from 'prop-types'; import classNames from 'classnames'; const objectWithoutProperties = function(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } const propTypes = { className: PropTypes.string, color: PropTypes.string, size: PropTypes.size, active: PropTypes.bool, disabled: PropTypes.bool, href: PropTypes.string, children: PropTypes.node }; const defaultProps = { active: false, disabled: false, href: '#' }; class Anchor extends Component { render() { const { className, href, color, size, children, active, disabled } = this.props; const classes = classNames(className, {[color]: color, ['font-'+size]: size,'active': active, 'disabled': disabled}) return React.createElement( Link, Object.assign({}, objectWithoutProperties(this.props, Object.keys(propTypes).filter(e => e !== 'children')), { className: classes, to: href, disabled: Boolean(disabled) } ), children ); }; }; Anchor.propTypes = propTypes; Anchor.defaultProps = defaultProps; export default Anchor;