Files
bs-manager/src/renderer/components/shared/bsm-link.component.tsx
T
2023-07-16 13:58:01 +02:00

37 lines
926 B
TypeScript

import { useService } from "renderer/hooks/use-service.hook";
import { LinkOpenerService } from "renderer/services/link-opener.service";
type Props = {
className?: string;
href?: string;
internal?: boolean;
children?: React.ReactNode;
style?: React.CSSProperties;
};
export function BsmLink({ className, href, children, style, internal }: Props) {
const linkOpener = useService(LinkOpenerService);
const openLink = () => {
if (!href) {
return;
}
linkOpener.open(href, internal);
};
return (
// eslint-disable-next-line jsx-a11y/anchor-is-valid -- Will be reworked later
<a
className={`${className} ${href && "cursor-pointer"}`}
onClick={e => {
e.stopPropagation();
openLink();
}}
style={style}
>
{children}
</a>
);
}