Skip to content

Commit 8f67a21

Browse files
committed
Merge branch 'nihil-pro-master'
2 parents 2820735 + 2e69b1b commit 8f67a21

File tree

14 files changed

+135
-320
lines changed

14 files changed

+135
-320
lines changed

frameworks/keyed/preact-kr-observable/package-lock.json

Lines changed: 39 additions & 38 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frameworks/keyed/preact-kr-observable/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@
1111
"dev": "rollup -c -w",
1212
"build-prod": "rollup -c --environment production"
1313
},
14-
"author": "Maxim Molochkov",
14+
"author": "Roman Constantin",
1515
"license": "Apache-2.0",
1616
"homepage": "https://github.com/krausest/js-framework-benchmark",
1717
"repository": {
1818
"type": "git",
1919
"url": "https://github.com/krausest/js-framework-benchmark.git"
2020
},
2121
"dependencies": {
22-
"kr-observable": "1.0.30",
22+
"kr-observable": "1.0.39",
2323
"preact": "^10.25.0",
2424
"react": "18.2.0",
2525
"react-dom": "18.2.0"

frameworks/keyed/preact-kr-observable/rollup.config.mjs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ const plugins = [
2323
entries:[
2424
{ find: 'react', replacement: 'preact/compat' },
2525
{ find: 'react-dom', replacement: 'preact/compat' },
26-
{ find: 'react/jsx-runtime', replacement: 'preact/compat' }
26+
{ find: 'react/jsx-runtime', replacement: 'preact/compat' },
27+
{ find: 'use-sync-external-store', replacement: 'preact/compat' }
2728
]
2829
}),
2930
nodeResolve({ extensions: ['.js', '.jsx'] }),

frameworks/keyed/preact-kr-observable/src/Main.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ function Main() {
4040
<div className="jumbotron">
4141
<div className="row">
4242
<div className="col-md-6">
43-
<h1>React + kr-observable</h1>
43+
<h1>Preact + kr-observable</h1>
4444
</div>
4545

4646
<div className="col-md-6">

frameworks/keyed/preact-kr-observable/src/Row.jsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ export const Row = observer(function row({ data }) {
66
<tr className={data.selected ? 'danger' : ''}>
77
<td className="col-md-1">{data.id}</td>
88
<td className="col-md-4">
9-
<a onClick={() => rowsStore.select(data.id)}>{data.label}</a>
9+
<a id={data.id} onClick={rowsStore.select}>{data.label}</a>
1010
</td>
1111
<td className="col-md-1">
12-
<a onClick={() => rowsStore.delete(data.id)}>
12+
<a onClick={rowsStore.delete}>
1313
<span
14+
id={data.id}
1415
className="glyphicon glyphicon-remove"
1516
aria-hidden="true"
1617
></span>

frameworks/keyed/preact-kr-observable/src/RowsStore.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ import { Observable } from 'kr-observable';
22
import { buildData } from './data';
33

44
export class RowsStore extends Observable {
5+
static shallow = ['rows']
56
rows = [];
67

7-
delete(rowIdToDelete) {
8-
const rowIndexToDelete = this.rows.findIndex((row) => row.id === rowIdToDelete);
8+
delete(e) {
9+
const rowIndexToDelete = this.rows.findIndex((row) => row.id === +e.target.id);
910
this.rows.splice(rowIndexToDelete, 1);
1011
};
1112

@@ -23,8 +24,8 @@ export class RowsStore extends Observable {
2324
}
2425
};
2526

26-
select(rowId) {
27-
this.rows.forEach(row => row.selected = row.id === rowId)
27+
select(e) {
28+
this.rows.forEach(row => row.selected = row.id === +e.target.id)
2829
};
2930

3031
runLots() {
@@ -45,4 +46,5 @@ export class RowsStore extends Observable {
4546
};
4647
}
4748

49+
4850
export const rowsStore = new RowsStore()

0 commit comments

Comments
 (0)