import * as React from 'react'; import * as _ from 'lodash'; import * as DefaultStyles from './style'; const loading = require('../../SVG/loading.svg') export namespace LoadingButton { export interface Props { onClick: (event: any) => void; name: string; mode?: MODE; content: string; disableMouseOverStyles?: boolean; styles?: Styles; id?: string; } export interface State { } export interface Styles { Container?: any; Button?: any; Loading?: any; Failed?: any; Success?: any; Disabled?: any; LoadingImg?: any; Root?: any; } }; export enum MODE { LOADING = 'loading', FAILED = 'failed', SUCCESS = 'success', DISABLED = 'disabled' } const LoadingButton = (props: LoadingButton.Props): JSX.Element => { const Styles: LoadingButton.Styles = _.merge(DefaultStyles, props.styles); const getButtonMode = (mode): JSX.Element => { switch (mode) { case MODE.LOADING: return ( ) case MODE.SUCCESS: return ( {props.content} ) case MODE.FAILED: return ( {props.content} ) case MODE.DISABLED: return ( {props.content} ) default: return ( {props.content} ) } } return ( {getButtonMode(props.mode)} ) } export default LoadingButton;