UNPKG

curls

Version:

💪 Responsive, expressive UI primitives for React written with Style Hooks and Emotion

74 lines (60 loc) • 2.02 kB
'use strict' exports.__esModule = true exports.Link = exports.createLink = void 0 var _react = _interopRequireDefault(require('react')) var _core = require('@style-hooks/core') var _Box = require('../Box') var _Text = require('../Text') var _A = require('./A') function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : {default: obj} } function _extends() { _extends = Object.assign || function(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key] } } } return target } return _extends.apply(this, arguments) } const createLink = themeName => _react.default.forwardRef((props, ref) => { var _theme$themeName const theme = (0, _core.useTheme)() if (process.env.NODE_ENV !== 'production') if ( !(theme === null || theme === void 0 ? void 0 : (_theme$themeName = theme[themeName]) === null || _theme$themeName === void 0 ? void 0 : _theme$themeName.component) ) throw new Error( 'You must define a `component` property in your ' + `'theme.${themeName}' to use the ${themeName .charAt(0) .toUpperCase() + themeName.slice(1)} component` ) props = (0, _Box.useBox)((0, _Text.useText)((0, _A.useLink)(props))) props.ref = ref return (0, _core.createElement)(theme[themeName].component, props) }) exports.createLink = createLink const Link = createLink('link') exports.Link = Link if (process.env.NODE_ENV !== 'production') { const typePropTypes = require('../Text/propTypes').default, boxPropTypes = require('../Box/propTypes').default, flexPropTypes = require('../Flex/propTypes').default Link.displayName = 'Link' Link.propTypes = _extends({}, boxPropTypes, typePropTypes, flexPropTypes) }