curls
Version:
💪 Responsive, expressive UI primitives for React written with Style Hooks and Emotion
74 lines (60 loc) • 2.02 kB
JavaScript
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)
}