@dxos/react-client 2.19.3-dev.9a16cc94 → 2.19.3-dev.a7017f95
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 +6 -5
- package/.rush/temp/package-deps_build:test.json +6 -5
- package/.rush/temp/shrinkwrap-deps.json +629 -570
- package/dist/src/banner.d.ts +2 -0
- package/dist/src/banner.d.ts.map +1 -0
- package/dist/src/banner.js +20 -0
- package/dist/src/banner.js.map +1 -0
- package/dist/src/containers/ClientProvider.d.ts.map +1 -1
- package/dist/src/containers/ClientProvider.js +2 -0
- package/dist/src/containers/ClientProvider.js.map +1 -1
- package/dist/src/hooks/echo-queries/useMembers.d.ts.map +1 -1
- package/dist/src/hooks/echo-queries/useMembers.js +0 -2
- package/dist/src/hooks/echo-queries/useMembers.js.map +1 -1
- package/dist/src/hooks/echo-queries/useParties.d.ts +0 -4
- package/dist/src/hooks/echo-queries/useParties.d.ts.map +1 -1
- package/dist/src/hooks/echo-queries/useParties.js +2 -9
- package/dist/src/hooks/echo-queries/useParties.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +67 -66
- package/react-client.build.log +0 -33
- package/src/banner.ts +18 -0
- package/src/containers/ClientProvider.tsx +3 -0
- package/src/hooks/echo-queries/useMembers.tsx +0 -2
- package/src/hooks/echo-queries/useParties.ts +2 -9
package/package.json
CHANGED
|
@@ -1,67 +1,68 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
2
|
+
"name": "@dxos/react-client",
|
|
3
|
+
"version": "2.19.3-dev.a7017f95",
|
|
4
|
+
"description": "React client API",
|
|
5
|
+
"keywords": [],
|
|
6
|
+
"license": "AGPL-3.0",
|
|
7
|
+
"author": "DXOS.org",
|
|
8
|
+
"main": "dist/src/index.js",
|
|
9
|
+
"types": "dist/src/index.d.ts",
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"@dxos/async": "2.19.3-dev.a7017f95",
|
|
12
|
+
"@dxos/client": "2.19.3-dev.a7017f95",
|
|
13
|
+
"@dxos/config": "2.19.3-dev.a7017f95",
|
|
14
|
+
"@dxos/credentials": "2.19.3-dev.a7017f95",
|
|
15
|
+
"@dxos/crypto": "2.19.3-dev.a7017f95",
|
|
16
|
+
"@dxos/debug": "2.19.3-dev.a7017f95",
|
|
17
|
+
"@dxos/echo-db": "2.19.3-dev.a7017f95",
|
|
18
|
+
"@dxos/esbuild-plugins": "2.19.3-dev.a7017f95",
|
|
19
|
+
"@dxos/esbuild-server": "~1.4.1",
|
|
20
|
+
"@dxos/util": "2.19.3-dev.a7017f95",
|
|
21
|
+
"@types/debug": "^4.1.7",
|
|
22
|
+
"assert": "^2.0.0",
|
|
23
|
+
"debug": "^4.3.3",
|
|
24
|
+
"react-display-name": "^0.2.5",
|
|
25
|
+
"use-subscription": "^1.4.1"
|
|
26
|
+
},
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"@dxos/toolchain-node-library": "2.19.2",
|
|
29
|
+
"@mui/material": "^5.0.1",
|
|
30
|
+
"@testing-library/react": "^11.0.4",
|
|
31
|
+
"@testing-library/react-hooks": "5.1.2",
|
|
32
|
+
"@types/debug": "^4.1.7",
|
|
33
|
+
"@types/level-js": "~4.0.1",
|
|
34
|
+
"@types/mocha": "~8.2.2",
|
|
35
|
+
"@types/node": "^14.0.9",
|
|
36
|
+
"@types/react": "^17.0.24",
|
|
37
|
+
"@types/testing-library__jest-dom": "~5.9.5",
|
|
38
|
+
"@types/use-subscription": "^1.0.0",
|
|
39
|
+
"expect": "~27.0.2",
|
|
40
|
+
"fork-ts-checker-webpack-plugin": "~6.2.5",
|
|
41
|
+
"level-js": "^5.0.2",
|
|
42
|
+
"react": "^17.0.2",
|
|
43
|
+
"react-docgen-typescript-loader": "^3.7.2",
|
|
44
|
+
"react-dom": "^17.0.2",
|
|
45
|
+
"react-test-renderer": "^17.0.2",
|
|
46
|
+
"typescript": "^4.5.2",
|
|
47
|
+
"webpack": "4.44.2"
|
|
48
|
+
},
|
|
49
|
+
"peerDependencies": {
|
|
50
|
+
"react": "*"
|
|
51
|
+
},
|
|
52
|
+
"publishConfig": {
|
|
53
|
+
"access": "public"
|
|
54
|
+
},
|
|
55
|
+
"toolchain": {
|
|
56
|
+
"testingFramework": "mocha",
|
|
57
|
+
"jsdom": true,
|
|
58
|
+
"forceCloseTests": true
|
|
59
|
+
},
|
|
60
|
+
"scripts": {
|
|
61
|
+
"book": "esbuild-server book",
|
|
62
|
+
"build": "toolchain build",
|
|
63
|
+
"build:test": "toolchain build:test",
|
|
64
|
+
"lint": "toolchain lint",
|
|
65
|
+
"test": "toolchain test"
|
|
66
|
+
},
|
|
67
|
+
"readme": "# @dxos/react-client\n\nA react implementation of the DXOS Client APIs.\n\n## Install\n\n```bash\ngit clone git@github.com:dxos/protocols.git\ncd protocols\nrush update\nrush build\n\ncd packages/sdk/demos\nrushx book\n```\n\n## Usage\n\nThe snippet below illustrates a self-contained DXOS application that uses providers to create the client and instantiate a user profile.\n\n```javascript\nimport { useClient, ClientProvider, ProfileInitializer } from '@dxos/react-client';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nconst App = () => {\n const client = useClient();\n\n return (\n <pre>{JSON.stringify(client.info())}</pre>\n );\n};\n\nconst Root = () => (\n <ClientProvider>\n <ProfileInitializer>\n <App />\n </ProfileInitializer>\n </ClientProvider>\n);\n\nReactDOM.render(<Root/>, document.getElementById('root'));\n```\n\n## Storybooks\n\nThe [HALO Invitation Story](./stories/halo-invitations.stories.tsx) demonstrates multiple clients (devices) joining the same HALO.\n\nhttps://user-images.githubusercontent.com/3523355/137532718-a21f1f27-9854-4c0b-831a-e9ff92feac49.mov\n\nThe [Party Invitation Story](./stories/party-invitations.stories.tsx) demonstrates multiple clients creating and sharing parties.\n\nhttps://user-images.githubusercontent.com/3523355/137532717-e77395dc-96f9-4e4b-8f67-e6bd026a3abe.mov\n\n\n## Contributing\n\nPRs accepted.\n\n## License\n\nAGPL-3.0 © DXOS\n"
|
|
68
|
+
}
|
package/react-client.build.log
CHANGED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
Invoking: toolchain build:test
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
typescript
|
|
5
|
-
OK in 6009 ms
|
|
6
|
-
|
|
7
|
-
eslint
|
|
8
|
-
OK in 7272 ms
|
|
9
|
-
|
|
10
|
-
mocha
|
|
11
|
-
This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills
|
|
12
|
-
This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
ClientProvider
|
|
16
|
-
✓ Renders with children (39ms)
|
|
17
|
-
✓ Provides the client
|
|
18
|
-
|
|
19
|
-
Client hook
|
|
20
|
-
✓ should throw when used outside a context
|
|
21
|
-
✓ should return client when used properly in a context
|
|
22
|
-
|
|
23
|
-
Config hook
|
|
24
|
-
✓ should throw when used outside a context
|
|
25
|
-
✓ should return default client config when no config is passed in a context
|
|
26
|
-
✓ should return custom client config when used properly in a context
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
7 passing (517ms)
|
|
30
|
-
|
|
31
|
-
OK in 9905 ms
|
|
32
|
-
|
|
33
|
-
CHECK COMPLETE in 23191 ms
|
package/src/banner.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2021 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
let bannerPrinted = false;
|
|
6
|
+
|
|
7
|
+
export function printBanner () {
|
|
8
|
+
if (bannerPrinted) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
bannerPrinted = true;
|
|
12
|
+
|
|
13
|
+
console.log('%cDXOS', `
|
|
14
|
+
text-align: center;
|
|
15
|
+
text-shadow: #ddd 4px -4px, #bbb 8px -8px, #999 12px -12px, #777 16px -16px;
|
|
16
|
+
font-size: 10em;padding:10px;
|
|
17
|
+
`);
|
|
18
|
+
}
|
|
@@ -9,6 +9,7 @@ import { Client, ClientOptions } from '@dxos/client';
|
|
|
9
9
|
import { Config, ConfigObject } from '@dxos/config';
|
|
10
10
|
import { MaybeFunction, MaybePromise, getAsyncValue } from '@dxos/util';
|
|
11
11
|
|
|
12
|
+
import { printBanner } from '../banner';
|
|
12
13
|
import { ClientContext } from '../hooks';
|
|
13
14
|
|
|
14
15
|
const log = debug('dxos:react-client');
|
|
@@ -64,6 +65,8 @@ export const ClientProvider = ({
|
|
|
64
65
|
|
|
65
66
|
// Async helpers.
|
|
66
67
|
useEffect(() => {
|
|
68
|
+
printBanner();
|
|
69
|
+
|
|
67
70
|
if (!client) {
|
|
68
71
|
const done = async (client: Client) => {
|
|
69
72
|
log(`Created client: ${client}`);
|
|
@@ -18,8 +18,6 @@ export const useMembers = (party: PartyProxy | undefined) => {
|
|
|
18
18
|
setMembers(result.value);
|
|
19
19
|
|
|
20
20
|
return result.subscribe(() => {
|
|
21
|
-
// TODO(wittjosiah): Result not triggering update when name loads.
|
|
22
|
-
// https://github.com/dxos/protocols/issues/372
|
|
23
21
|
const update = setInterval(() => {
|
|
24
22
|
const newMembers = party.queryMembers().value;
|
|
25
23
|
const isNameFilled = newMembers.every(m => m.displayName);
|
|
@@ -2,13 +2,12 @@
|
|
|
2
2
|
// Copyright 2020 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { useEffect,
|
|
5
|
+
import { useEffect, useState } from 'react';
|
|
6
6
|
|
|
7
7
|
import { PartyProxy } from '@dxos/client';
|
|
8
8
|
import { PublicKey, PublicKeyLike } from '@dxos/crypto';
|
|
9
9
|
|
|
10
10
|
import { useClient } from '../client';
|
|
11
|
-
import { useResultSet } from '../util';
|
|
12
11
|
|
|
13
12
|
/**
|
|
14
13
|
* Get a specific Party.
|
|
@@ -16,6 +15,7 @@ import { useResultSet } from '../util';
|
|
|
16
15
|
*/
|
|
17
16
|
export const useParty = (partyKey?: PublicKeyLike): PartyProxy | undefined => {
|
|
18
17
|
const client = useClient();
|
|
18
|
+
// TODO(wittjosiah): Not responsive to party updates?
|
|
19
19
|
return partyKey ? client.echo.getParty(PublicKey.from(partyKey)) : undefined;
|
|
20
20
|
};
|
|
21
21
|
|
|
@@ -44,10 +44,3 @@ export const useParties = () => {
|
|
|
44
44
|
|
|
45
45
|
return parties;
|
|
46
46
|
};
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Get all known members of a Party.
|
|
50
|
-
*/
|
|
51
|
-
export const usePartyMembers = (party: PartyProxy) => {
|
|
52
|
-
return useResultSet(useMemo(() => party.queryMembers(), [party.key.toHex()]));
|
|
53
|
-
};
|