0.1.5 • Published 10 years ago

vitullo-spinner v0.1.5

Weekly downloads
22
License
MIT
Repository
github
Last release
10 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

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

11 years ago

0.1.0

11 years ago