index.js
29 lines
| 1 | import PropTypes from 'prop-types'; |
| 2 | import classNames from 'classnames'; |
| 3 | |
| 4 | import styles from './style.module.scss'; |
| 5 | |
| 6 | const Button = ({children, onClick, icon, ...rest}) => { |
| 7 | const classes = classNames({ |
| 8 | [styles.button]: true, |
| 9 | [styles.icon]: icon, |
| 10 | }); |
| 11 | |
| 12 | return ( |
| 13 | <button className={classes} onClick={onClick} {...rest}> |
| 14 | {children} |
| 15 | </button> |
| 16 | ); |
| 17 | }; |
| 18 | |
| 19 | Button.propTypes = { |
| 20 | // Button children |
| 21 | children: PropTypes.node, |
| 22 | // Fired on button click |
| 23 | onClick: PropTypes.func, |
| 24 | // Icon |
| 25 | icon: PropTypes.bool, |
| 26 | }; |
| 27 | |
| 28 | export default Button; |
| 29 |