Skip to content

Instantly share code, notes, and snippets.

@gaearon
Created February 2, 2016 17:02
Show Gist options
  • Save gaearon/cf5686700affb969648e to your computer and use it in GitHub Desktop.
Save gaearon/cf5686700affb969648e 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="root" style="height: 100%"></div>
</body>
</html>
import { createStore } from 'redux'
import React from 'react'
import ReactDOM from 'react-dom'
import { createDevTools } from 'redux-devtools';
import LogMonitor from 'redux-devtools-log-monitor';
const DevTools = createDevTools(
<LogMonitor theme='tomorrow' />
);
const Counter = ({ value, onAdd }) => (
<div>
<h1>{value}</h1>
<button onClick={onAdd}>+</button>
</div>
);
const counter = (state = 0, action) => {
if (action.type === 'inc') {
return state + 1
}
return state
}
const store = createStore(counter, DevTools.instrument())
const render = () => {
ReactDOM.render(
<div style={{ height: '100%' }}>
<Counter
value={store.getState()}
onAdd={() => store.dispatch({ type: 'inc' })}
/>
<DevTools store={store} />
</div>,
document.getElementById('root')
)
}
render()
store.subscribe(render)
{
"name": "esnextbin-sketch",
"version": "0.0.0",
"dependencies": {
"redux": "3.2.1",
"react": "0.14.7",
"react-dom": "0.14.7",
"redux-devtools": "3.0.2",
"redux-devtools-log-monitor": "1.0.2"
}
}
'use strict';
var _redux = require('redux');
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactDom = require('react-dom');
var _reactDom2 = _interopRequireDefault(_reactDom);
var _reduxDevtools = require('redux-devtools');
var _reduxDevtoolsLogMonitor = require('redux-devtools-log-monitor');
var _reduxDevtoolsLogMonitor2 = _interopRequireDefault(_reduxDevtoolsLogMonitor);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var DevTools = (0, _reduxDevtools.createDevTools)(_react2.default.createElement(_reduxDevtoolsLogMonitor2.default, { theme: 'tomorrow' }));
var Counter = function Counter(_ref) {
var value = _ref.value;
var onAdd = _ref.onAdd;
return _react2.default.createElement(
'div',
null,
_react2.default.createElement(
'h1',
null,
value
),
_react2.default.createElement(
'button',
{ onClick: onAdd },
'+'
)
);
};
var counter = function counter() {
var state = arguments.length <= 0 || arguments[0] === undefined ? 0 : arguments[0];
var action = arguments[1];
if (action.type === 'inc') {
return state + 1;
}
return state;
};
var store = (0, _redux.createStore)(counter, DevTools.instrument());
var render = function render() {
_reactDom2.default.render(_react2.default.createElement(
'div',
{ style: { height: '100%' } },
_react2.default.createElement(Counter, {
value: store.getState(),
onAdd: function onAdd() {
return store.dispatch({ type: 'inc' });
}
}),
_react2.default.createElement(DevTools, { store: store })
), document.getElementById('root'));
};
render();
store.subscribe(render);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment