0.1.5 • Published 9 years ago

vitullo-spinner v0.1.5

Weekly downloads
22
License
MIT
Repository
github
Last release
9 years ago

A simple to use loading spinner for React.

Require needed code

var Spinner = require('vitullo-spinner');

Run setup in React component

var Spinner = require('vitullo-spinner');
var Example = React.createClass({
	mixins: [
		Spinner.Mixin
	],
	componentWillMount: function() {
		this.addSpinners(['more', 'than', 'one', 'spinner']);
		// or
		// this.addSpinners('spinner');
	}
});

Render the spinner with children

var Spinner = require('vitullo-spinner');
var Example = React.createClass({
	mixins: [
		Spinner.Mixin
	],
	componentWillMount: function() {
		this.addSpinners(['more', 'than', 'one', 'spinner']);
		// or
		// this.addSpinners('spinner');
	}
	render: function() {
		<Spinner loaded={this.getSpinner('than')}>
			<h1>Content!</h1>
		</Spinner>
	}
});

Start and stop the spinner as needed

var Spinner = require('vitullo-spinner');
var Example = React.createClass({
	mixins: [
		Spinner.Mixin
	],
	componentWillMount: function() {
		this.addSpinners(['more', 'than', 'one', 'spinner']);
		// or
		// this.addSpinners('spinner');
	}
	componentDidMount: function() {
		this.startSpinner('than');

		$.ajax('example.com')
		 	.always(function() { this.stopSpinner('than'); });
  	}
	render: function() {
		<Spinner loaded={this.getSpinner('than')}>
			<h1>Content!</h1>
		</Spinner>
	}
});

Optional Props

	// Set timeout before the spinner shows up, in s.
	// The default is 1s, to prevent the spinner from briefly flashing
	// every time something is loaded.
	spinWait: React.PropTypes.number,
	// Set timeout before the message appears, in s.
	msgWait: React.PropTypes.number,
	// Set what message appears.
	message: React.PropTypes.string,
	// The height of the spinner container. The actually spinner is 1/3rd 
	// as tall to give some padding.
	height: React.PropTypes.number,
	// The length of time between ticks, in ms. By default this is set to 
	// 500, a lower number will tick more frequently (and allow more 
	// granular  spinWait/msgWait) values. A large number will mutate state 
	// less frequently.
	tickLen: React.PropTypes.number
	// By default this is a div with the class 'vs-indicator', but this can 
	// be overridden if you want a more complex indicator than can be made 
	// with a single div.
	spinner: React.PropTypes.node

Mixin Functions

addSpinners(names)

Add one or more spinners to the current component. A string name or an array of string names should be given.
e.g.

  this.addSpinners("network")
  this.addSpinners(["login", "content", "processing"])

getSpinner(name)

Fetch the current state of a spinner, typically only used as the loaded prop. e.g.

  <Spinner loaded={this.getSpinner('than')}>

startSpinner(name)

Change the state of a spinner to false (i.e. not loaded). e.g.

  this.startSpinner("content")

stopSpinner(name)

Change the state of a spinner to true (i.e. done loading). e.g.

  this.stopSpinner("content")
0.1.5

9 years ago

0.1.4

9 years ago

0.1.3

9 years ago

0.1.2

9 years ago

0.1.1

9 years ago

0.1.0

9 years ago