У меня была эта ошибка, которая сводила меня с ума со вчерашнего дня. У меня есть слайд с тремя изображениями, у каждого из изображений есть кнопка. На кнопках слайдера изображения только go внешние после двух нажатий. Это происходит в chrome версии.
Любая помощь приветствуется.
У меня была эта ошибка, которая со вчерашнего дня сводила меня с ума. У меня есть слайд с тремя изображениями, у каждого из изображений есть кнопка. На кнопках слайдера изображения только go внешние после двух нажатий. Это происходит в chrome версии.
Любая помощь приветствуется.
function ExternalLink(props) {
// const track = useTracking();
const {
content,
content: { showArrow, target: contentTarget, window: linkWindow, localMedium },
className,
children,
onClick,
pure,
// tracking,
// socialTrackingName,
// socialTrackingIcon,
// trackingCategory,
onMouseUp,
onMouseDown,
} = props;
if (!contentTarget) return null;
if (linkWindow === '_popup') {
return <PopUpLink {...props} />;
}
/**
* renders an internal link which should open in the same window
*/
const target = linkWindow === '_blank' ? '_blank' : '_self';
const classes = `${className} ${addArrowClass(className, showArrow)}`;
let link =
contentTarget.includes('mailto:') ||
contentTarget.includes('https://') ||
contentTarget.includes('http://')
? contentTarget
: `https://${contentTarget}`;
/* eslint-disable-next-line no-script-url */
if (contentTarget.includes('javascript:')) {
link = contentTarget;
}
/*
const trackLink = (e) => {
if (!tracking) {
const toLink = e.currentTarget.href;
const text = e.currentTarget.textContent;
if (onClick) {
onClick();
}
track.trackEvent(
externalLink(
toLink,
text,
socialTrackingName,
socialTrackingIcon,
trackingCategory,
localMedium,
),
);
} else {
tracking(e);
}
};
*/
const attributes = {
href: link,
target,
className: classes,
rel: 'noopener noreferrer',
// onClick: trackLink,
onMouseDown,
onMouseUp,
};
if (isEmpty(classes)) {
delete attributes.className;
}
if (target !== '_blank') {
delete attributes.rel;
}
const linkText = isEmpty(pure) ? decodingContent(content.text) : content.text;
return <a {...attributes}>{isEmpty(children) ? linkText : children}</a>;
}
ExternalLink.propTypes = {
content: PropTypes.oneOfType([
PropTypes.objectOf(PropTypes.any).isRequired,
PropTypes.string.isRequired,
]).isRequired,
children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),
className: PropTypes.string,
onClick: PropTypes.func,
pure: PropTypes.bool,
tracking: PropTypes.func,
socialTrackingName: PropTypes.string,
socialTrackingIcon: PropTypes.string,
trackingCategory: PropTypes.string,
onMouseDown: PropTypes.func,
onMouseUp: PropTypes.func,
};
ExternalLink.defaultProps = {
children: null,
className: '',
onClick: null,
pure: null,
tracking: null,
socialTrackingName: '',
socialTrackingIcon: '',
trackingCategory: '',
onMouseDown: null,
onMouseUp: null,
};
export default ExternalLink;
function getLinkComponent(linkType) {
switch (linkType) {
case 'internal_link':
return InternalLink;
case 'mail_link':
return MailLink;
default:
return ExternalLink;
}
}
function CmsLink({ link, children, ...props }) {
const { className } = props;
const { target, type } = link || {};
// return just a div, if there is a missing link
if (isEmpty(link)) {
return <div className={className}>{children}</div>;
}
let LinkComponent = getLinkComponent(type);
if (!isEmpty(target) && target.startsWith('http')) {
LinkComponent = ExternalLink;
}
if (!isEmpty(target) && target.startsWith('mailto')) {
LinkComponent = MailLink;
}
return (
<LinkComponent content={link} {...props}>
{children}
</LinkComponent>
);
}
renderLink() {
const {
slide: { link, textColor },
sliderOnClickCTA,
} = this.props;
return (
<CmsLink /* onClick={() => sliderOnClickCTA && sliderOnClickCTA(link.text)} */ link={link}>
<Button
type={BUTTON_TYPES.DEFAULT}
color={textColor === 'white' ? BUTTON_COLORS.WHITE : BUTTON_COLORS.BLACK}
>
{link.text}
</Button>
</CmsLink>
);
}