Skip to content

Commit 1490027

Browse files
committed
fix remove row for dojo unkeyed
1 parent d2ea388 commit 1490027

File tree

3 files changed

+12
-11
lines changed

3 files changed

+12
-11
lines changed

frameworks/non-keyed/dojo/src/App.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,9 @@ export default factory(function App({ middleware: { store }}) {
2222
return null;
2323
}
2424
return w(Row, {
25-
key: item.id,
25+
key,
2626
id: item.id,
27-
label: item.label,
28-
onSelect: store.select
27+
label: item.label
2928
});
3029
});
3130

frameworks/non-keyed/dojo/src/Row.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,22 @@ import { create, v } from '@dojo/framework/core/vdom';
22
import store from './Store';
33

44
export interface RowProperties {
5-
onSelect: Function;
65
id: number;
76
label: string;
87
}
98

109
const factory = create({ store }).properties<RowProperties>();
1110

1211
export default factory(function Row({ properties, middleware: { store } }) {
13-
const { id, label, onSelect } = properties();
12+
const { id, key = id, label } = properties();
1413

1514
return v('tr', {
16-
classes: [ store.selected === id && 'danger' ]
15+
classes: [ store.selected === key && 'danger' ]
1716
}, [
1817
v('td', { classes: [ 'col-md-1' ] }, [ `${id}` ]),
1918
v('td', { classes: [ 'col-md-4' ] }, [
2019
v('a', { onclick: () => {
21-
onSelect(id);
20+
store.select();
2221
} }, [ label ])
2322
]),
2423
v('td', { classes: [ 'col-md-1' ] }, [

frameworks/non-keyed/dojo/src/Store.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -153,10 +153,12 @@ export default factory(({ properties, middleware: { invalidator } }) => {
153153
}
154154
invalidate();
155155
},
156-
select: (id: number) => {
157-
selected && invalidate(selected);
158-
invalidate(id);
159-
selected = id;
156+
select: () => {
157+
if (typeof widgetKey === "number") {
158+
selected && invalidate(selected);
159+
selected = widgetKey;
160+
invalidate(widgetKey);
161+
}
160162
},
161163
runLots: () => {
162164
idx = 0;
@@ -182,6 +184,7 @@ export default factory(({ properties, middleware: { invalidator } }) => {
182184
const row = data[second];
183185
data[second] = data[last];
184186
data[last] = row;
187+
selected = selected === 1 ? 998 : selected === 998 ? 1 : selected;
185188
}
186189
ids = new Set(idArray);
187190
invalidate();

0 commit comments

Comments
 (0)