Files
crimson-quirks-ui/src/components/Link/index.tsx
T
2025-03-18 17:12:38 +01:00

53 lines
1.0 KiB
TypeScript

import { JSX } from 'react';
import { Wrapper } from './styles';
type LinkProps = {
href?: string;
url?: boolean;
children?: React.ReactNode | JSX.Element | string;
color?:
| 'client'
| 'productOwner'
| 'developer'
| 'admin'
| 'success'
| 'warning'
| 'error'
| 'black'
| 'white'
| string;
selected?: boolean;
className?: string;
iconLeft?: React.ReactNode;
onClick?: () => void;
target?: '_self' | '_blank';
};
const Link = ({
href,
url = false,
children,
iconLeft,
selected = false,
target = '_self',
...props
}: LinkProps) => {
return (
<Wrapper {...props} selected={selected}>
{href && !url ? (
<a href={href} target={target}>
{iconLeft && <span className='icon left'>{iconLeft}</span>}
{children}
</a>
) : (
<a href={href} target={target}>
{iconLeft && <span className='icon left'>{iconLeft}</span>}
{children}
</a>
)}
</Wrapper>
);
};
export default Link;