react-spinkit
Version:
A collection of loading indicators animated with CSS for React
172 lines (167 loc) • 6.05 kB
JavaScript
// Generated by CoffeeScript 1.9.1
var React, cx, objectAssign;
React = require('react');
cx = require('classnames');
objectAssign = require('react/lib/Object.assign');
module.exports = React.createClass({
displayName: "SpinKit",
propTypes: {
spinnerName: React.PropTypes.string.isRequired,
noFadeIn: React.PropTypes.bool,
overrideSpinnerClassName: React.PropTypes.string
},
getDefaultProps: function() {
return {
spinnerName: 'three-bounce',
noFadeIn: false,
overrideSpinnerClassName: ""
};
},
render: function() {
var classTests, classes;
classTests = {
"fade-in": !this.props.noFadeIn,
spinner: this.props.overrideSpinnerClassName === ""
};
classTests[this.props.overrideSpinnerClassName] = this.props.overrideSpinnerClassName;
classes = cx(classTests);
if (this.props.className) {
classes = classes + " " + this.props.className;
}
if (!this.props.noFadeIn) {
require('../css/fade-in.css');
}
switch (this.props.spinnerName) {
case "three-bounce":
require('../css/three-bounce.css');
return React.createElement("div", React.__spread({}, this.props, {
"className": "three-bounce " + classes
}), React.createElement("div", {
"className": "bounce1"
}), React.createElement("div", {
"className": "bounce2"
}), React.createElement("div", {
"className": "bounce3"
}));
case "double-bounce":
require('../css/double-bounce.css');
return React.createElement("div", React.__spread({}, this.props, {
"className": "double-bounce " + classes
}), React.createElement("div", {
"className": "double-bounce1"
}), React.createElement("div", {
"className": "double-bounce2"
}));
case "rotating-plane":
require('../css/rotating-plane.css');
return React.createElement("div", React.__spread({}, this.props, {
"className": classes
}), React.createElement("div", {
"className": "rotating-plane"
}));
case "wave":
require('../css/wave.css');
return React.createElement("div", React.__spread({}, this.props, {
"className": "wave " + classes
}), React.createElement("div", {
"className": "rect1"
}), React.createElement("div", {
"className": "rect2"
}), React.createElement("div", {
"className": "rect3"
}), React.createElement("div", {
"className": "rect4"
}), React.createElement("div", {
"className": "rect5"
}));
case "wandering-cubes":
require('../css/wandering-cubes.css');
return React.createElement("div", React.__spread({}, this.props, {
"className": "wandering-cubes " + classes
}), React.createElement("div", {
"className": "cube1"
}), React.createElement("div", {
"className": "cube2"
}));
case "pulse":
require('../css/pulse.css');
return React.createElement("div", React.__spread({}, this.props, {
"className": classes
}), React.createElement("div", {
"className": "pulse"
}));
case "chasing-dots":
require('../css/chasing-dots.css');
return React.createElement("div", React.__spread({}, this.props, {
"className": classes
}), React.createElement("div", {
"className": "chasing-dots"
}, React.createElement("div", {
"className": "dot1"
}), React.createElement("div", {
"className": "dot2"
})));
case "circle":
require('../css/circle.css');
return React.createElement("div", React.__spread({}, this.props, {
"className": "circle-wrapper " + classes
}), React.createElement("div", {
"className": "circle1 circle"
}), React.createElement("div", {
"className": "circle2 circle"
}), React.createElement("div", {
"className": "circle3 circle"
}), React.createElement("div", {
"className": "circle4 circle"
}), React.createElement("div", {
"className": "circle5 circle"
}), React.createElement("div", {
"className": "circle6 circle"
}), React.createElement("div", {
"className": "circle7 circle"
}), React.createElement("div", {
"className": "circle8 circle"
}), React.createElement("div", {
"className": "circle9 circle"
}), React.createElement("div", {
"className": "circle10 circle"
}), React.createElement("div", {
"className": "circle11 circle"
}), React.createElement("div", {
"className": "circle12 circle"
}));
case "cube-grid":
require('../css/cube-grid.css');
return React.createElement("div", React.__spread({}, this.props, {
"className": "cube-grid " + classes
}), React.createElement("div", {
"className": "cube"
}), React.createElement("div", {
"className": "cube"
}), React.createElement("div", {
"className": "cube"
}), React.createElement("div", {
"className": "cube"
}), React.createElement("div", {
"className": "cube"
}), React.createElement("div", {
"className": "cube"
}), React.createElement("div", {
"className": "cube"
}), React.createElement("div", {
"className": "cube"
}), React.createElement("div", {
"className": "cube"
}));
case "wordpress":
require('../css/wordpress.css');
return React.createElement("div", React.__spread({}, this.props, {
"className": classes
}), React.createElement("div", {
"className": "wordpress"
}, React.createElement("span", {
"className": "inner-circle"
})));
}
}
});