Simple react.js component for a inline progress indicator
npm install react-progress-button-for-images-uploader



> Simple React component for a circular Progress Button.

``bash`
npm install react-progress-button --save
`javascript
import ProgressButton from 'react-progress-button'
const App = React.createClass({
getInitialState () {
return {
buttonState: ''
}
},
render () {
return (
handleClick () {
this.setState({buttonState: 'loading'})
// make asynchronous call
setTimeout(function() {
this.setState({buttonState: 'success'})
}.bind(this), 3000)
}
})
`
If the function passed in via the onClick prop return a Promise or if a promiseloading
is passed as an argument of the method,
the component will automatically transition to its success or error
states based on the outcome of the Promise without the need for
external manipulation of state using a ref.
`javascript
import ProgressButton from 'react-progress-button'
const App = React.createClass({
render () {
return (
handleClick() {
return new Promise(function(resolve, reject) {
setTimeout(resolve, 3000)
})
}
});
`
All props are optional. All props other than that will be passed to the top element.
##### classNamespace
Namespace for CSS classes, default is pb- i.e CSS classes are pb-button.
##### durationError
Duration (ms) before going back to normal state when an error occurs,
default is 1200
##### durationSuccess
Duration (ms) before going back to normal state when an success occurs,
default is 500
##### onClick
Function to call when the button is clicked; if it returns a Promise
then the component will transition to the success/error state based on
the outcome of the Promise
##### onError
Function to call when going back to the normal state after an error
##### onSuccess
Function to call when going back to the normal state after a success
##### state
State of the button if you do not want to use the functions. Can be '', loading, success, error or disabled`.
##### type
Type of the button (can be 'submit' for example).
##### form
Id of the form to submit (useful if the button is not directly inside the form).
##### shouldAllowClickOnLoading
Whether click event should bubble when in loading state
##### loading()
Put the button in the loading state.
##### disable()
Put the button in the disabled state.
##### notLoading(), enable()
Put the button in the normal state.
##### success([callback, dontGoBackToNormal])
Put the button in the success state. Call the callback or the onSuccess prop when going back to the normal state.
##### error([callback])
Put the button in the error state. Call the callback or the onSuccess prop when going back to the normal state.
Look at react-progress-button.css for an idea on how to style this component.
MIT