import React from 'react'; import { openInBrowser } from 'utils/electron'; interface AAttributes { charset?: string; className?: string; coords?: string; download?: string; href: string; hreflang?: string; media?: string; name?: string; rel?: | 'alternate' | 'author' | 'bookmark' | 'external' | 'help' | 'license' | 'next' | 'nofollow' | 'noreferrer' | 'noopener' | 'prev' | 'search' | 'tag'; rev?: string; shape?: 'default' | 'rect' | 'circle' | 'poly'; target?: '_blank' | '_parent' | '_self' | '_top'; type?: string; onClick?(ev: React.MouseEvent): void; } interface NewTabLinkProps extends AAttributes { content?: React.ReactElement | string; children?: React.ReactElement | string; } export class NewTabLink extends React.Component { public render() { const { content, children, ...rest } = this.props; return ( {content || children} ); } private handleClick(ev: React.MouseEvent) { if (openInBrowser(ev.currentTarget.href)) { ev.preventDefault(); } } } export default NewTabLink;