UNPKG

@gechiui/components

Version:
53 lines (49 loc) 1.44 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import { createElement } from "@gechiui/element"; /** * External dependencies */ import classnames from 'classnames'; import { compact, uniq } from 'lodash'; /** * GeChiUI dependencies */ import { __ } from '@gechiui/i18n'; import { forwardRef } from '@gechiui/element'; import { external } from '@gechiui/icons'; /** * Internal dependencies */ import { VisuallyHidden } from '../visually-hidden'; import { StyledIcon } from './styles/external-link-styles'; export function ExternalLink(_ref, ref) { let { href, children, className, rel = '', ...additionalProps } = _ref; rel = uniq(compact([...rel.split(' '), 'external', 'noreferrer', 'noopener'])).join(' '); const classes = classnames('components-external-link', className); return ( /* eslint-disable react/jsx-no-target-blank */ createElement("a", _extends({}, additionalProps, { className: classes, href: href, target: "_blank", rel: rel, ref: ref }), children, createElement(VisuallyHidden, { as: "span" }, /* translators: accessibility text */ __('(在新窗口中打开)')), createElement(StyledIcon, { icon: external, className: "components-external-link__icon" })) /* eslint-enable react/jsx-no-target-blank */ ); } export default forwardRef(ExternalLink); //# sourceMappingURL=index.js.map