<!DOCTYPE html>
<html>
<head>
<link href="//cdn.jsdelivr.net/picnicss/4.1.1/picnic.min.css" rel="stylesheet">
</head>
<body>
<h1>Hello Mag.JS - Redux remote!</h1>
<a target="_tab" href="https://github.com/magnumjs/mag.js">GitHub</a>
<hr/>
<div id="test">
<p></p>
<button></button>
</div>
<script src="//rawgit.com/magnumjs/mag.js/master/dist/mag.0.21.3.min.js"></script>
<script src="//rawgit.com/magnumjs/mag.js/master/dist/mag.addons.0.21.min.js"></script>
<script src="//rawgit.com/magnumjs/mag.js/master/dist/mag-redux.0.22.min.js"></script>
<script src="//rawgit.com/magnumjs/mag.js/master/src/addons/redux-middleware.js"></script>
<script src="redux.js"></script>
<script src="module.js"></script>
<script src="init.js"></script>
</body>
</html>
//Component definition and instance creation - not executed
var mod = mag.create('test',{
controller: function(props) {
this.button = {
_onClick: props.clickText,
_text: "What time is it?"
}
},
view: function(state, props) {
state.p = props.mod.text
}
});
//Redux State reducer:
var reducer = function(state, action) {
if (!state) {
return {
text: "ZZZ"
};
}
switch (action.type) {
case "TEXT_CHANGE":
return Object.assign({}, state, {
text: action.text
});
default:
return state;
}
};
//Connect & run Component:
mag.reduxConnect({}, {
clickText: function() {
return {
type: "TEXT_CHANGE",
text: "It's currently: " + (new Date()).toTimeString()
}
}
}, {
"mod": reducer
}, [Redux.middle.logger])(mod);