optimize example further (#462)

This commit is contained in:
Yoshua Wuyts
2017-04-02 01:19:59 +02:00
committed by GitHub
parent 96c0d1bc29
commit 16d15d0e88
4 changed files with 23 additions and 7 deletions
+15 -1
View File
@@ -1,3 +1,5 @@
var Microbounce = require('microbounce')
var Microframe = require('microframe')
var mutate = require('xtend/mutable')
var expose = require('choo-expose')
var css = require('sheetify')
@@ -47,17 +49,21 @@ function mainView (state, emit) {
}
function todoStore (state, emitter) {
// Default values
if (!state.todos) {
state.todos = {}
state.todos.active = []
state.todos.done = []
state.todos.all = []
state.todos.input = ''
state.todos.idCounter = 0
}
// Always reset when application boots
state.todos.input = ''
// Register emitters after DOM is loaded to speed up DOM loading
emitter.on('DOMContentLoaded', function () {
emitter.emit('log:debug', 'Loading todos model')
@@ -253,6 +259,8 @@ function Footer (state, emit) {
}
}
var debounce = Microbounce(256)
var nextFrame = Microframe()
function Header (state, emit) {
return html`
<header class="header">
@@ -269,10 +277,16 @@ function Header (state, emit) {
var value = e.target.value
if (!value) return
if (e.keyCode === 13) {
nextFrame(function () {
emit('todos:input', '')
emit('todos:create', value)
})
} else {
debounce(function () {
nextFrame(function () {
emit('todos:input', value)
})
})
}
}
}
+2
View File
@@ -13,6 +13,8 @@
"choo-expose": "^1.0.0",
"choo-log": "^6.0.0",
"choo-persist": "^3.0.0",
"microbounce": "^1.0.0",
"microframe": "^1.0.0",
"sheetify": "^6.0.1",
"todomvc-app-css": "^2.0.6",
"todomvc-common": "^1.0.3",
+2 -2
View File
@@ -9,9 +9,9 @@ var assert = require('assert')
var onHistoryChange = require('./lib/history')
var onHref = require('./lib/href')
module.exports = Framework
module.exports = Choo
function Framework (opts) {
function Choo (opts) {
opts = opts || {}
var routerOpts = {
+1 -1
View File
@@ -8,7 +8,7 @@
"deps": "dependency-check --entry ./html.js . && dependency-check . --extra --no-dev --entry ./html.js",
"inspect": "browserify --full-paths index -g unassertify -g uglifyify | discify --open",
"prepublish": "npm run build",
"start": "bankai start example --open --optimize",
"start": "bankai start example --optimize",
"test": "standard && npm run deps && node test.js"
},
"repository": "yoshuawuyts/choo",