Skip to content

Commit c00b307

Browse files
committed
remove select state from data and use view state instead
1 parent 50c8cd3 commit c00b307

File tree

5 files changed

+11
-12
lines changed

5 files changed

+11
-12
lines changed

frameworks/keyed/mikado-proxy/src/data.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,7 @@ export default function(store, count, append){
2727
store[i] = {
2828

2929
"id": nextId++,
30-
"label": ADJECTIVES[random(len_ADJECTIVES)] + " " + COLOURS[random(len_COLOURS)] + " " + NOUNS[random(len_NOUNS)],
31-
"class": false
30+
"label": ADJECTIVES[random(len_ADJECTIVES)] + " " + COLOURS[random(len_COLOURS)] + " " + NOUNS[random(len_NOUNS)]
3231
};
3332
}
3433
}

frameworks/keyed/mikado-proxy/src/main.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ Mikado.once(document.body, tpl_app).eventCache = true;
1010
// This implementation is using a full reactive paradigm.
1111
// It just applies changes to the store like an Array.
1212

13-
let selected;
13+
const state = {};
1414
const store = new Array();
15-
const view = new Mikado(tpl_item, { mount: document.getElementById("tbody"), observe: store });
15+
const view = new Mikado(tpl_item, { mount: document.getElementById("tbody"), observe: store, state });
1616
const event = { stop: true };
1717

1818
route("run", () => assignData(store, 1000), event);
@@ -30,8 +30,8 @@ route("swaprows", () => {
3030
}, event);
3131
route("remove", target => store.splice(view.index(target), 1), event);
3232
route("select", target => {
33-
selected >= 0 && (store[selected].class = "");
34-
selected = view.index(target);
35-
/** @export */
36-
store[selected].class = "danger";
33+
const current = state.selected;
34+
state.selected = view.index(target);
35+
current >= 0 && view.update(current, store[current]);
36+
view.update(state.selected, store[state.selected]);
3737
}, event);

frameworks/keyed/mikado-proxy/src/template/item.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<tr key="id" cache="true" class="{{=data.class}}" root>
1+
<tr key="id" cache="true" class="{{ state.selected === index ? 'danger' : '' }}" root>
22
<td class="col-md-1">{{=data.id}}</td>
33
<td class="col-md-4">
44
<a class="lbl" click="select:root">{{=data.label}}</a>

frameworks/keyed/mikado/src/main.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,5 @@ route("select", target => {
3434
const current = state.selected;
3535
state.selected = view.index(target);
3636
current >= 0 && view.update(current, data[current]);
37-
view.update(target, data[state.selected]);
37+
view.update(state.selected, data[state.selected]);
3838
}, event);

frameworks/non-keyed/mikado/src/main.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ const event = { stop: true };
1616

1717
route("run", () => view.render(data = buildData(1000)), event);
1818
route("runlots", () => view.render(buildData(10000)), event);
19-
route("add", () => view.append(buildData(1000)), event);
19+
route("add", () => view.append(data = buildData(1000)), event);
2020
route("update", () => {
2121
for(let i = 0; i < data.length; i += 10){
2222
data[i].label += " !!!";
@@ -34,5 +34,5 @@ route("select", target => {
3434
let current = state.selected;
3535
state.selected = view.index(target);
3636
current >= 0 && view.update(current, data[current]);
37-
view.update(target, data[state.selected]);
37+
view.update(state.selected, data[state.selected]);
3838
}, event);

0 commit comments

Comments
 (0)