Add document title handling

This commit is contained in:
Ken-Håvard Lieng 2017-05-19 07:29:44 +02:00
parent 511b9e406c
commit 2afbf2359c
8 changed files with 156 additions and 65 deletions

View file

@ -0,0 +1,44 @@
function subscribe(store, selector, handler) {
let prev = selector(store.getState());
handler(prev);
store.subscribe(() => {
const next = selector(store.getState());
if (next !== prev) {
handler(next);
prev = next;
}
});
}
function subscribeArray(store, selectors, handler) {
let state = store.getState();
let prev = selectors.map(selector => selector(state));
handler(...prev);
store.subscribe(() => {
state = store.getState();
const next = [];
let changed = false;
for (let i = 0; i < selectors.length; i++) {
next[i] = selectors[i](state);
if (next[i] !== prev[i]) {
changed = true;
}
}
if (changed) {
handler(...next);
prev = next;
}
});
}
export default function observe(store, selector, handler) {
if (Array.isArray(selector)) {
subscribeArray(store, selector, handler);
} else {
subscribe(store, selector, handler);
}
}