React Base Fiddle (JSX)
Starting point for creating JSFiddles with React. This uses React with Addons.
by tara5
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.1/JSXTransformer.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.1/react-with-addons.js"></script>
<script src="https://facebook.github.io/react/js/jsfiddle-integration.js"></script>
<div id="container">
<!-- This element's contents will be replaced with your component. -->
</div>
CSS
input.dialogInput {
display: block;
padding: 5px;
margin: 10px;
}
button.button {
margin-left: 10px;
}
.button2 {
margin-top: 20px;
}
JavaScript 1.7
var Input = React.createClass({
getInitialState: function() {
return {value: ''};
},
_onChange: function(event) {
this.setState({value: event.target.value});
this.props.callback(this, event.target.value);
},
render: function() {
return <input placeholder={this.props.placeholder} className={this.props.className} onChange={this._onChange}/>;
}
});
var Button = React.createClass({
_onClick: function(){
this.props.callback && this.props.callback(this);
},
render: function() {
return <button className={this.props.className} onClick={this._onClick}>{this.props.title}</button>;
}
});
var Dialog = React.createClass({
_onButtonClick: function(button) {
console.log(arguments);
},
_onInputChange: function(input, value) {
console.log(arguments);
},
render: function() {
var self = this;
return <div>
{this.props.inputs.map(function(input) {
return <Input className={input.className} callback={self._onInputChange} placeholder={input.placeholder}/>
})}
{this.props.buttons.map(function(button) {
return <Button className={button.className} callback={self._onButtonClick} title={button.title}/>
})}
</div>;
}
});
var options = {
buttons: [
{
title: "Login",
action: "login",
className: "button"
},
{
title: "Cancel",
action: "cancel",
className: "button"
}
],
inputs: [
{placeholder: "Login", className: "dialogInput"},
{placeholder: "Password", className: "dialogInput"}
],
container: document.getElementById('container')
}
var Wrapper = React.createClass({
getInitialState: function(){
return {hideDialog: false}
},
hideDialog: function(){
this.setState({hideDialog:...