import React from 'react' import useTheme from '../use-theme' import LinkIcon from './icon' import { addColorAlpha } from '../utils/color' import useScale, { withScale } from '../use-scale' import useClasses from '../use-classes' export interface Props { href?: string color?: boolean icon?: boolean underline?: boolean block?: boolean className?: string } const defaultProps = { href: '', color: false, icon: false, underline: false, block: false, className: '' } type NativeAttrs = Omit, keyof Props> export type LinkProps = Props & NativeAttrs const LinkComponent = React.forwardRef>( ( { href, color, underline, children, className, block, icon, ...props }: React.PropsWithChildren, ref: React.Ref ) => { const theme = useTheme() const { SCALES } = useScale() const linkColor = color || block ? theme.palette.link : 'inherit' const hoverColor = color || block ? theme.palette.successLight : 'inherit' const decoration = underline ? 'underline' : 'none' const classes = useClasses('link', { block }, className) return ( {children} {icon && } ) } ) LinkComponent.defaultProps = defaultProps LinkComponent.displayName = 'HuiLink' const Link = withScale(LinkComponent) export default Link