lbry-desktop/ui/js/component/link/view.js
2017-06-05 21:21:55 -07:00

53 lines
1.1 KiB
JavaScript

import React from 'react';
import { Icon } from 'component/common.js';
const Link = props => {
const {
href,
title,
onClick,
style,
label,
icon,
badge,
button,
hidden,
disabled,
children
} = props;
const className =
(props.className || '') +
(!props.className && !props.button ? 'button-text' : '') + // Non-button links get the same look as text buttons
(props.button
? ' button-block button-' + props.button + ' button-set-item'
: '') +
(props.disabled ? ' disabled' : '');
let content;
if (children) {
content = children;
} else {
content = (
<span {...('button' in props ? { className: 'button__content' } : {})}>
{'icon' in props ? <Icon icon={icon} fixed={true} /> : null}
{label ? <span className="link-label">{label}</span> : null}
{'badge' in props ? <span className="badge">{badge}</span> : null}
</span>
);
}
return (
<a
className={className}
href={href || 'javascript:;'}
title={title}
onClick={onClick}
{...('style' in props ? { style: style } : {})}
>
{content}
</a>
);
};
export default Link;