mercury
Version:
A truly modular frontend framework
36 lines (26 loc) • 913 B
JavaScript
;
var hg = require('../../index.js');
var TimeTravel = require('../../time-travel.js');
var document = require('global/document');
var window = require('global/window');
var rafListen = require('./lib/raf-listen.js');
var localStorage = window.localStorage;
var TodoApp = require('./todo-app.js');
function App() {
// load from localStorage
var storedState = localStorage.getItem('todos-mercury@11');
var initialState = storedState ? JSON.parse(storedState) : null;
var todoApp = TodoApp(initialState);
rafListen(todoApp, function onChange(value) {
localStorage.setItem('todos-mercury@11',
JSON.stringify(value));
});
return todoApp;
}
App.render = TodoApp.render;
var app = window.app = App();
var history = TimeTravel(app);
window.undo = history.undo;
window.redo = history.redo;
hg.app(document.body, app, App.render);
module.exports = App;