All Projects → mathieudutour → React Progress Button

mathieudutour / React Progress Button

🌀 Simple react.js component for an inline progress indicator

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to React Progress Button

React Awesome Button
React button component. Awesome button is a 3D UI, progress, social and share enabled, animated at 60fps, light weight, performant, production ready react UI button component. 🖥️ 📱
Stars: ✭ 943 (+82.75%)
Mutual labels:  component, progress, button
React Native Really Awesome Button
React Native button component. Awesome Button is a 3D at 60fps, progress enabled, social ready, extendable, production ready component that renders an awesome animated set of UI buttons. 📱
Stars: ✭ 988 (+91.47%)
Mutual labels:  component, progress, button
Github Buttons
Unofficial github:buttons.
Stars: ✭ 821 (+59.11%)
Mutual labels:  component, button
Vue Step Progress
A simple Vue component that displays a Progress Bar with labels for each step
Stars: ✭ 26 (-94.96%)
Mutual labels:  component, progress
Awloader
AWLoader is a UI Component that allows you to integrate loader that fits your needs within your app.
Stars: ✭ 11 (-97.87%)
Mutual labels:  component, progress
Zwmusicdownloadview
精仿唱吧App音乐下载进度按钮,完美快速集成使用(A beautiful musical download progress button which can show the progress and click to play Music after finishing)
Stars: ✭ 88 (-82.95%)
Mutual labels:  progress, button
Swift project
原OC项目用swift实现,纯swift项目,可作为学习swift的demo,包含多个自定义控件,并且进行封装网络请求库,结构清晰。
Stars: ✭ 133 (-74.22%)
Mutual labels:  progress, button
React Nprogress
⌛️ A React primitive for building slim progress bars.
Stars: ✭ 173 (-66.47%)
Mutual labels:  component, progress
Scrollprogress
🛸 Light weight library to observe the viewport scroll position
Stars: ✭ 148 (-71.32%)
Mutual labels:  component, progress
Vue Loaders
Vue + loaders.css
Stars: ✭ 127 (-75.39%)
Mutual labels:  component, progress
Vue Progress Button
Animated button for VueJS
Stars: ✭ 71 (-86.24%)
Mutual labels:  progress, button
Vue Simple Spinner
A simple, flexible spinner for Vue.js
Stars: ✭ 385 (-25.39%)
Mutual labels:  component, progress
Progressbutton
Custom ProgressButton
Stars: ✭ 52 (-89.92%)
Mutual labels:  progress, button
Androidbuttonprogress
Provides download button progress view for android
Stars: ✭ 166 (-67.83%)
Mutual labels:  progress, button
Wymaterialbutton
Interactive and fully animated Material Design button for iOS developers.
Stars: ✭ 80 (-84.5%)
Mutual labels:  component, button
Gradient Widgets
Flutter widgets wrapped with gradients
Stars: ✭ 290 (-43.8%)
Mutual labels:  progress, button
React Native Platform Touchable
A wrapper around the various Touchable* components built into React Native core with platform defaults
Stars: ✭ 440 (-14.73%)
Mutual labels:  component, button
Async Reactor
Render async Stateless Functional Components in React
Stars: ✭ 452 (-12.4%)
Mutual labels:  component
React Data Fetching
🎣 Declarative data fetching for React.
Stars: ✭ 496 (-3.88%)
Mutual labels:  component
Kotlinandroid
组件化 + MVP + Retrofit + RxKotlin + Dagger2实现的一款用Kotlin语言编写的多媒体类应用。
Stars: ✭ 451 (-12.6%)
Mutual labels:  component

react-progress-button

build status npm version Dependency Status devDependency Status

Simple React component for a circular Progress Button.

Demo

Demo

Install

npm install react-progress-button --save

Example

Controlled usage:

import ProgressButton from 'react-progress-button'

const App = React.createClass({
  getInitialState () {
    return {
      buttonState: ''
    }
  },

  render () {
    return (
      <div>
        <ProgressButton onClick={this.handleClick} state={this.state.buttonState}>
          Go!
        </ProgressButton>
      </div>
    )
  },

  handleClick () {
    this.setState({buttonState: 'loading'})
    // make asynchronous call
    setTimeout(() => {
      this.setState({buttonState: 'success'})
    }, 3000)
  }
})

Source

Using Promises:

If the function passed in via the onClick prop return a Promise or if a promise is passed as an argument of the loading 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.

import ProgressButton from 'react-progress-button'

const App = React.createClass({
  render () {
    return (
      <div>
        <ProgressButton onClick={this.handleClick}>
          Go!
        </ProgressButton>
      </div>
    )
  },

  handleClick() {
    return new Promise(function(resolve, reject) {
      setTimeout(resolve, 3000)
    })
  }
});

Source

API

Props

All props are optional. All props other than that will be passed to the top element.

controlled

true if you control the button state (by providing props.state and props.onClick).false to let the button manage its state with Promises.

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

Methods

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 onError prop when going back to the normal state.

Styles

Look at react-progress-button.css for an idea on how to style this component.

If you are using webpack, you'll need to have css-loader installed and include

 {
   test: /\.css$/,
   loader: "style!css"
 }

in your webpack config. In your jsx file you can then import the CSS with import "../node_modules/react-progress-button/react-progress-button.css"; although the path depends on how deeply nested your jsx is. If you wish to theme it yourself, copy the CSS to a convenient location and point the import path at the copy, which is part of your repo, unlike the original in node_modules.

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].