From ac15735533087ccfdf45edf8afedca017d55a2d2 Mon Sep 17 00:00:00 2001 From: Vijay A Date: Sun, 24 Oct 2021 14:53:37 +0530 Subject: reverting conversion: renamed 'src/components/ui/Button.tsx' to 'src/components/ui/Button.js' --- src/components/ui/Button.js | 95 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 src/components/ui/Button.js (limited to 'src/components/ui/Button.js') diff --git a/src/components/ui/Button.js b/src/components/ui/Button.js new file mode 100644 index 000000000..67c801d98 --- /dev/null +++ b/src/components/ui/Button.js @@ -0,0 +1,95 @@ +import { Component } from 'react'; +import PropTypes from 'prop-types'; +import { observer, inject } from 'mobx-react'; +import Loader from 'react-loader'; +import classnames from 'classnames'; + +@inject('stores') +@observer +class Button extends Component { + static propTypes = { + className: PropTypes.string, + label: PropTypes.string.isRequired, + disabled: PropTypes.bool, + onClick: PropTypes.func, + type: PropTypes.string, + buttonType: PropTypes.string, + loaded: PropTypes.bool, + htmlForm: PropTypes.string, + stores: PropTypes.shape({ + settings: PropTypes.shape({ + app: PropTypes.shape({ + accentColor: PropTypes.string.isRequired, + }).isRequired, + }).isRequired, + }).isRequired, + }; + + static defaultProps = { + className: null, + disabled: false, + onClick: () => {}, + type: 'button', + buttonType: '', + loaded: true, + htmlForm: '', + }; + + element = null; + + render() { + const { + label, + className, + disabled, + onClick, + type, + buttonType, + loaded, + htmlForm, + } = this.props; + + const buttonProps = { + className: classnames({ + 'franz-form__button': true, + [`franz-form__button--${buttonType}`]: buttonType, + [`${className}`]: className, + }), + type, + }; + + if (disabled) { + buttonProps.disabled = true; + } + + if (onClick) { + buttonProps.onClick = onClick; + } + + if (htmlForm) { + buttonProps.form = htmlForm; + } + + return ( + // disabling rule as button has type defined in `buttonProps` + /* eslint-disable react/button-has-type */ + + /* eslint-enable react/button-has-type */ + ); + } +} + +export default Button; -- cgit v1.2.3-70-g09d2