Skip to content

Instantly share code, notes, and snippets.

@dreid
Last active May 25, 2016 18:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dreid/f0b9b22bbe837861533683dbfdd03ec4 to your computer and use it in GitHub Desktop.
Save dreid/f0b9b22bbe837861533683dbfdd03ec4 to your computer and use it in GitHub Desktop.
esnextbin sketch
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>ESNextbin Sketch</title>
<!-- put additional styles and scripts here -->
</head>
<body>
<div id="app"></div>
<!-- put markup and other contents here -->
</body>
</html>
import React, { PropTypes } from 'react';
import ReactDOM from 'react-dom';
import _ from 'lodash';
import { Provider, connect } from 'react-redux';
import { createFieldClass, modelReducer, formReducer, controls } from 'react-redux-form';
import { createStore, combineReducers, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import createLogger from 'redux-logger';
const store = applyMiddleware(thunk, createLogger())(createStore)(combineReducers({
model: modelReducer('model', {a: false, b: false}),
model_form: formReducer('model', {a: false, b: false})
}));
const Checkbox = (props) =>
<label><input type="checkbox" {...props} />{props.label}: value={props.modelValue.toString()}</label>;
const Field = createFieldClass({
'Checkbox': controls.checkbox
});
const App = connect(s=>s)((props) => {
return (
<div>
<ul>
<li>
<Field model="model.a">
<Checkbox label="Once checked, can't uncheck"/>
</Field>
</li>
<li>
<Field model="model.b">
<Checkbox type="checkbox" label="Working checkbox" />
</Field>
</li>
</ul>
</div>
);
});
const mapStateToProps = state => state
ReactDOM.render(<Provider store={store}>
<App /></Provider>, document.getElementById('app'))
{
"name": "esnextbin-sketch",
"version": "0.0.0",
"dependencies": {
"react": "15.0.2",
"react-dom": "15.0.2",
"lodash": "4.11.1",
"react-redux": "4.4.5",
"react-redux-form": "0.11.8",
"redux": "3.5.2",
"redux-thunk": "2.0.1",
"redux-logger": "2.6.1",
"babel-runtime": "6.6.1"
}
}
'use strict';
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactDom = require('react-dom');
var _reactDom2 = _interopRequireDefault(_reactDom);
var _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
var _reactRedux = require('react-redux');
var _reactReduxForm = require('react-redux-form');
var _redux = require('redux');
var _reduxThunk = require('redux-thunk');
var _reduxThunk2 = _interopRequireDefault(_reduxThunk);
var _reduxLogger = require('redux-logger');
var _reduxLogger2 = _interopRequireDefault(_reduxLogger);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var store = (0, _redux.applyMiddleware)(_reduxThunk2.default, (0, _reduxLogger2.default)())(_redux.createStore)((0, _redux.combineReducers)({
model: (0, _reactReduxForm.modelReducer)('model', { a: false, b: false }),
model_form: (0, _reactReduxForm.formReducer)('model', { a: false, b: false })
}));
var Checkbox = function Checkbox(props) {
return _react2.default.createElement(
'label',
null,
_react2.default.createElement('input', (0, _extends3.default)({ type: 'checkbox' }, props)),
props.label,
': value=',
props.modelValue.toString()
);
};
var Field = (0, _reactReduxForm.createFieldClass)({
'Checkbox': _reactReduxForm.controls.checkbox
});
var App = (0, _reactRedux.connect)(function (s) {
return s;
})(function (props) {
return _react2.default.createElement(
'div',
null,
_react2.default.createElement(
'ul',
null,
_react2.default.createElement(
'li',
null,
_react2.default.createElement(
Field,
{ model: 'model.a' },
_react2.default.createElement(Checkbox, { label: 'Once checked, can\'t uncheck' })
)
),
_react2.default.createElement(
'li',
null,
_react2.default.createElement(
Field,
{ model: 'model.b' },
_react2.default.createElement(Checkbox, { type: 'checkbox', label: 'Working checkbox' })
)
)
)
);
});
var mapStateToProps = function mapStateToProps(state) {
return state;
};
_reactDom2.default.render(_react2.default.createElement(
_reactRedux.Provider,
{ store: store },
_react2.default.createElement(App, null)
), document.getElementById('app'));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment