@gechiui/components
Version:
UI components for GeChiUI.
53 lines (49 loc) • 1.44 kB
JavaScript
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