import React, { FC, ReactNode, RefObject } from 'react'; import classNames from 'classnames'; import css from './index.module.css'; import { getModifier } from '../../helpers/getModifier'; export interface ButtonProps { type?: 'button' | 'submit' | 'reset'; tabIndex?: number; disabled?: boolean; showThrobber?: boolean; variant?: | 'primary' | 'secondary' | 'tertiary' | 'verified' | 'secondaryBlue' | 'navigation'; children: ReactNode; buttonRef?: RefObject; fullwidth?: boolean; handleClick?: (ev) => void; size?: 'small' | 'medium' | 'large'; } const Button: FC = ({ type = 'button', tabIndex, handleClick, children, disabled, showThrobber = false, variant, buttonRef, fullwidth, size, }) => { const buttonClassNames = classNames(css.button, { [`${css[`button${getModifier(variant)}`]}`]: variant, [`${css[`button${getModifier(size)}`]}`]: size, [css.buttonFullWidth]: fullwidth, }); return ( ); }; export default Button;