//@flow import React from "react"; import classNames from "classnames"; import {Link} from "react-router-dom"; export type ButtonProps = { label: string, loading?: boolean, disabled?: boolean, action?: (event: Event) => void, link?: string, fullWidth?: boolean, className?: string, classes: any }; type Props = ButtonProps & { type: string, color: string }; class Button extends React.Component { static defaultProps = { type: "button", color: "default" }; renderButton = () => { const { label, loading, disabled, type, color, action, fullWidth, className } = this.props; const loadingClass = loading ? "is-loading" : ""; const fullWidthClass = fullWidth ? "is-fullwidth" : ""; return ( ); }; render() { const { link } = this.props; if (link) { return {this.renderButton()}; // TODO: className does only apply to button, not the Link } else { return this.renderButton(); } } } export default Button;