@dxos/react-client 2.31.2-dev.8a81d3db → 2.31.2-dev.ab9a89e2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.rush/temp/package-deps_build.json +3 -2
- package/.rush/temp/package-deps_build:test.json +3 -2
- package/.rush/temp/package-deps_prerelease.json +3 -2
- package/.rush/temp/shrinkwrap-deps.json +4 -1
- package/dist/src/hooks/echo-selections/useSelection.test.d.ts +2 -0
- package/dist/src/hooks/echo-selections/useSelection.test.d.ts.map +1 -0
- package/dist/src/hooks/echo-selections/useSelection.test.js +61 -0
- package/dist/src/hooks/echo-selections/useSelection.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/out/book/esbuild-server-book.js +1 -1
- package/package.json +17 -13
- package/src/hooks/echo-selections/useSelection.test.tsx +74 -0
|
@@ -166048,7 +166048,7 @@ Current candidates:`, candidates);
|
|
|
166048
166048
|
"use strict";
|
|
166049
166049
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
166050
166050
|
exports2.DXOS_VERSION = void 0;
|
|
166051
|
-
exports2.DXOS_VERSION = "2.
|
|
166051
|
+
exports2.DXOS_VERSION = "2.30.2";
|
|
166052
166052
|
}
|
|
166053
166053
|
});
|
|
166054
166054
|
|
package/package.json
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/react-client",
|
|
3
|
-
"version": "2.31.2-dev.
|
|
3
|
+
"version": "2.31.2-dev.ab9a89e2",
|
|
4
4
|
"description": "React client API",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "DXOS.org",
|
|
7
7
|
"main": "dist/src/index.js",
|
|
8
8
|
"types": "dist/src/index.d.ts",
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@dxos/async": "2.31.2-dev.
|
|
11
|
-
"@dxos/bot-factory-client": "2.31.2-dev.
|
|
12
|
-
"@dxos/client": "2.31.2-dev.
|
|
13
|
-
"@dxos/config": "2.31.2-dev.
|
|
14
|
-
"@dxos/credentials": "2.31.2-dev.
|
|
15
|
-
"@dxos/crypto": "2.31.2-dev.
|
|
16
|
-
"@dxos/debug": "2.31.2-dev.
|
|
17
|
-
"@dxos/echo-db": "2.31.2-dev.
|
|
18
|
-
"@dxos/network-manager": "2.31.2-dev.
|
|
19
|
-
"@dxos/util": "2.31.2-dev.
|
|
10
|
+
"@dxos/async": "2.31.2-dev.ab9a89e2",
|
|
11
|
+
"@dxos/bot-factory-client": "2.31.2-dev.ab9a89e2",
|
|
12
|
+
"@dxos/client": "2.31.2-dev.ab9a89e2",
|
|
13
|
+
"@dxos/config": "2.31.2-dev.ab9a89e2",
|
|
14
|
+
"@dxos/credentials": "2.31.2-dev.ab9a89e2",
|
|
15
|
+
"@dxos/crypto": "2.31.2-dev.ab9a89e2",
|
|
16
|
+
"@dxos/debug": "2.31.2-dev.ab9a89e2",
|
|
17
|
+
"@dxos/echo-db": "2.31.2-dev.ab9a89e2",
|
|
18
|
+
"@dxos/network-manager": "2.31.2-dev.ab9a89e2",
|
|
19
|
+
"@dxos/util": "2.31.2-dev.ab9a89e2",
|
|
20
20
|
"assert": "^2.0.0",
|
|
21
21
|
"debug": "^4.3.3",
|
|
22
22
|
"use-subscription": "^1.4.1"
|
|
@@ -33,19 +33,23 @@
|
|
|
33
33
|
"@types/mocha": "~8.2.2",
|
|
34
34
|
"@types/node": "^14.0.9",
|
|
35
35
|
"@types/react": "^17.0.24",
|
|
36
|
+
"@types/react-dom": "^17.0.9",
|
|
36
37
|
"@types/testing-library__jest-dom": "~5.9.5",
|
|
37
38
|
"@types/use-subscription": "^1.0.0",
|
|
38
39
|
"eslint": "^7.12.1",
|
|
39
40
|
"expect": "~27.0.2",
|
|
40
41
|
"fork-ts-checker-webpack-plugin": "~6.2.5",
|
|
41
42
|
"level-js": "^5.0.2",
|
|
43
|
+
"raf": "^3.4.1",
|
|
42
44
|
"react": "^17.0.2",
|
|
43
45
|
"react-dom": "^17.0.2",
|
|
44
46
|
"react-test-renderer": "^17.0.2",
|
|
45
|
-
"typescript": "^4.5.2"
|
|
47
|
+
"typescript": "^4.5.2",
|
|
48
|
+
"wait-for-expect": "^3.0.2"
|
|
46
49
|
},
|
|
47
50
|
"peerDependencies": {
|
|
48
|
-
"react": "*"
|
|
51
|
+
"react": "*",
|
|
52
|
+
"react-dom": "*"
|
|
49
53
|
},
|
|
50
54
|
"publishConfig": {
|
|
51
55
|
"access": "public"
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2022 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import expect from 'expect';
|
|
6
|
+
import 'raf/polyfill';
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import ReactDOM from 'react-dom';
|
|
9
|
+
import { act } from 'react-dom/test-utils';
|
|
10
|
+
import waitForExpect from 'wait-for-expect';
|
|
11
|
+
|
|
12
|
+
import { Client, Party } from '@dxos/client';
|
|
13
|
+
|
|
14
|
+
import { useSelection } from './useSelection';
|
|
15
|
+
|
|
16
|
+
const count = 10;
|
|
17
|
+
const TYPE_EXAMPLE = 'example:type/org';
|
|
18
|
+
|
|
19
|
+
const useTestComponents = async () => {
|
|
20
|
+
const config = {};
|
|
21
|
+
const client = new Client(config);
|
|
22
|
+
await client.initialize();
|
|
23
|
+
await client.halo.createProfile();
|
|
24
|
+
|
|
25
|
+
const party = await client.echo.createParty();
|
|
26
|
+
const items = await Promise.all(Array.from({ length: count }).map(async () => {
|
|
27
|
+
return await party.database.createItem({ type: TYPE_EXAMPLE });
|
|
28
|
+
}));
|
|
29
|
+
expect(items.length).toBe(count);
|
|
30
|
+
|
|
31
|
+
return { client, party };
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const UseSelectionTestComponent = ({ party }: { party: Party}) => {
|
|
35
|
+
const items = useSelection(party?.select().filter({ type: TYPE_EXAMPLE }), []);
|
|
36
|
+
|
|
37
|
+
const addItem = async () => await party.database.createItem({ type: TYPE_EXAMPLE });
|
|
38
|
+
|
|
39
|
+
return (
|
|
40
|
+
<ul onClick={addItem}>
|
|
41
|
+
{items?.map(item => <li key={item.id}>{item.id}</li>)}
|
|
42
|
+
</ul>
|
|
43
|
+
);
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
let rootContainer: any;
|
|
47
|
+
|
|
48
|
+
beforeEach(() => {
|
|
49
|
+
rootContainer = document.createElement('div');
|
|
50
|
+
document.body.appendChild(rootContainer);
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
afterEach(() => {
|
|
54
|
+
document.body.removeChild(rootContainer);
|
|
55
|
+
rootContainer = null;
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
describe.only('useSelection', () => {
|
|
59
|
+
it('gets updated items selection', async () => {
|
|
60
|
+
const { party } = await useTestComponents();
|
|
61
|
+
act(() => {
|
|
62
|
+
ReactDOM.render(<UseSelectionTestComponent party={party} />, rootContainer);
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
const ul = rootContainer.querySelector('ul');
|
|
66
|
+
await waitForExpect(() => {
|
|
67
|
+
expect(ul.childNodes.length).toEqual(count);
|
|
68
|
+
});
|
|
69
|
+
ul.click();
|
|
70
|
+
await waitForExpect(() => {
|
|
71
|
+
expect(ul.childNodes.length).toEqual(count + 1);
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
});
|