@xyo-network/react-node 2.45.0-rc.20 → 2.45.0-rc.22
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/dist/cjs/hooks/useModule.js +31 -13
- package/dist/cjs/hooks/useModule.js.map +1 -1
- package/dist/cjs/hooks/useProvidedNode.js +10 -2
- package/dist/cjs/hooks/useProvidedNode.js.map +1 -1
- package/dist/cjs/hooks/useWrappedModule.js +14 -4
- package/dist/cjs/hooks/useWrappedModule.js.map +1 -1
- package/dist/docs.json +122 -88
- package/dist/esm/hooks/useModule.js +32 -14
- package/dist/esm/hooks/useModule.js.map +1 -1
- package/dist/esm/hooks/useProvidedNode.js +11 -3
- package/dist/esm/hooks/useProvidedNode.js.map +1 -1
- package/dist/esm/hooks/useWrappedModule.js +15 -5
- package/dist/esm/hooks/useWrappedModule.js.map +1 -1
- package/dist/types/hooks/useModule.d.ts +2 -2
- package/dist/types/hooks/useModule.d.ts.map +1 -1
- package/dist/types/hooks/useProvidedNode.d.ts.map +1 -1
- package/dist/types/hooks/useWrappedModule.d.ts +1 -0
- package/dist/types/hooks/useWrappedModule.d.ts.map +1 -1
- package/package.json +6 -5
- package/src/hooks/useModule.tsx +37 -16
- package/src/hooks/useProvidedNode.tsx +13 -3
- package/src/hooks/useWrappedModule.tsx +21 -5
|
@@ -5,7 +5,9 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const react_shared_1 = require("@xylabs/react-shared");
|
|
6
6
|
const react_1 = require("react");
|
|
7
7
|
const useProvidedNode_1 = require("./useProvidedNode");
|
|
8
|
-
const useModule = (
|
|
8
|
+
const useModule = (nameOrAddressOrFilter) => {
|
|
9
|
+
const nameOrAddress = (0, react_1.useMemo)(() => (typeof nameOrAddressOrFilter === 'string' ? nameOrAddressOrFilter : undefined), [nameOrAddressOrFilter]);
|
|
10
|
+
const filter = (0, react_1.useMemo)(() => (typeof nameOrAddressOrFilter === 'object' ? nameOrAddressOrFilter : undefined), [nameOrAddressOrFilter]);
|
|
9
11
|
const [node, nodeError] = (0, useProvidedNode_1.useProvidedWrappedNode)();
|
|
10
12
|
const [module, setModule] = (0, react_1.useState)();
|
|
11
13
|
const [error, setError] = (0, react_1.useState)();
|
|
@@ -13,13 +15,6 @@ const useModule = (nameOrAddress) => {
|
|
|
13
15
|
(0, react_shared_1.useAsyncEffect)(
|
|
14
16
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
15
17
|
(mounted) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
16
|
-
const detachHandler = (args) => {
|
|
17
|
-
const eventModule = args.module;
|
|
18
|
-
if (eventModule.address === address && mounted()) {
|
|
19
|
-
setModule(undefined);
|
|
20
|
-
setError(undefined);
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
18
|
try {
|
|
24
19
|
if (nodeError) {
|
|
25
20
|
setError(nodeError);
|
|
@@ -27,16 +22,39 @@ const useModule = (nameOrAddress) => {
|
|
|
27
22
|
}
|
|
28
23
|
else {
|
|
29
24
|
if (node) {
|
|
30
|
-
const
|
|
31
|
-
const
|
|
25
|
+
const attachEmitter = node.module;
|
|
26
|
+
const detachEmitter = node.module;
|
|
27
|
+
const attachHandler = (args) => {
|
|
28
|
+
const eventModule = args.module;
|
|
29
|
+
if (eventModule.address === nameOrAddress || ((module === null || module === void 0 ? void 0 : module.config.name) === nameOrAddress && mounted())) {
|
|
30
|
+
setModule(eventModule);
|
|
31
|
+
setError(undefined);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
const detachHandler = (args) => {
|
|
35
|
+
const eventModule = args.module;
|
|
36
|
+
if (eventModule.address === address && mounted()) {
|
|
37
|
+
setModule(undefined);
|
|
38
|
+
setError(undefined);
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
const module = nameOrAddress
|
|
42
|
+
? yield node.resolve(nameOrAddress)
|
|
43
|
+
: (yield node.resolve(filter)).pop();
|
|
32
44
|
if (mounted()) {
|
|
33
|
-
|
|
45
|
+
if (module) {
|
|
46
|
+
detachEmitter.on('moduleDetached', detachHandler);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
attachEmitter.on('moduleAttached', attachHandler);
|
|
50
|
+
}
|
|
34
51
|
setModule(module);
|
|
35
52
|
setError(undefined);
|
|
36
53
|
}
|
|
37
54
|
return () => {
|
|
38
55
|
//remove the event handler on unmount
|
|
39
|
-
|
|
56
|
+
attachEmitter.on('moduleAttached', attachHandler, true);
|
|
57
|
+
detachEmitter.on('moduleDetached', detachHandler, true);
|
|
40
58
|
};
|
|
41
59
|
}
|
|
42
60
|
else {
|
|
@@ -54,7 +72,7 @@ const useModule = (nameOrAddress) => {
|
|
|
54
72
|
setModule(undefined);
|
|
55
73
|
}
|
|
56
74
|
}
|
|
57
|
-
}), [nameOrAddress, node, nodeError, address]);
|
|
75
|
+
}), [nameOrAddress, node, nodeError, address, filter]);
|
|
58
76
|
return [module, error];
|
|
59
77
|
};
|
|
60
78
|
exports.useModule = useModule;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModule.js","sourceRoot":"","sources":["../../../src/hooks/useModule.tsx"],"names":[],"mappings":";;;;AAAA,uDAAqD;AAGrD,
|
|
1
|
+
{"version":3,"file":"useModule.js","sourceRoot":"","sources":["../../../src/hooks/useModule.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useProvidedWrappedNode = exports.useProvidedNode = void 0;
|
|
4
4
|
const node_1 = require("@xyo-network/node");
|
|
5
|
+
const react_wallet_1 = require("@xyo-network/react-wallet");
|
|
5
6
|
const react_1 = require("react");
|
|
6
7
|
const contexts_1 = require("../contexts");
|
|
7
8
|
const useProvidedNode = () => {
|
|
@@ -10,12 +11,19 @@ const useProvidedNode = () => {
|
|
|
10
11
|
};
|
|
11
12
|
exports.useProvidedNode = useProvidedNode;
|
|
12
13
|
const useProvidedWrappedNode = (account) => {
|
|
14
|
+
const [providedAccount] = (0, react_wallet_1.useAccount)();
|
|
13
15
|
const [node] = (0, exports.useProvidedNode)();
|
|
14
16
|
const [wrappedNode, setWrappedNode] = (0, react_1.useState)();
|
|
15
17
|
const [error, setError] = (0, react_1.useState)();
|
|
18
|
+
const accountToUse = (0, react_1.useMemo)(() => account !== null && account !== void 0 ? account : providedAccount, [account, providedAccount]);
|
|
19
|
+
if (!accountToUse) {
|
|
20
|
+
const error = Error('useProvidedWrappedNode requires either an Account context or account parameter');
|
|
21
|
+
console.error(error.message);
|
|
22
|
+
setError(error);
|
|
23
|
+
}
|
|
16
24
|
(0, react_1.useEffect)(() => {
|
|
17
25
|
try {
|
|
18
|
-
if (node) {
|
|
26
|
+
if (node && accountToUse) {
|
|
19
27
|
setWrappedNode(node_1.NodeWrapper.wrap(node, account));
|
|
20
28
|
setError(undefined);
|
|
21
29
|
}
|
|
@@ -24,7 +32,7 @@ const useProvidedWrappedNode = (account) => {
|
|
|
24
32
|
setWrappedNode(undefined);
|
|
25
33
|
setError(ex);
|
|
26
34
|
}
|
|
27
|
-
}, [node, account]);
|
|
35
|
+
}, [node, account, accountToUse]);
|
|
28
36
|
return [wrappedNode, error];
|
|
29
37
|
};
|
|
30
38
|
exports.useProvidedWrappedNode = useProvidedWrappedNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useProvidedNode.js","sourceRoot":"","sources":["../../../src/hooks/useProvidedNode.tsx"],"names":[],"mappings":";;;AACA,4CAA2D;AAC3D,
|
|
1
|
+
{"version":3,"file":"useProvidedNode.js","sourceRoot":"","sources":["../../../src/hooks/useProvidedNode.tsx"],"names":[],"mappings":";;;AACA,4CAA2D;AAC3D,4DAAsD;AACtD,iCAAgE;AAEhE,0CAAyC;AAElC,MAAM,eAAe,GAAG,GAA6B,EAAE;IAC5D,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,kBAAU,EAAC,sBAAW,CAAC,CAAA;IAExC,OAAO,CAAC,IAAI,CAAC,CAAA;AACf,CAAC,CAAA;AAJY,QAAA,eAAe,mBAI3B;AAEM,MAAM,sBAAsB,GAAG,CAAC,OAAyB,EAAgD,EAAE;IAChH,MAAM,CAAC,eAAe,CAAC,GAAG,IAAA,yBAAU,GAAE,CAAA;IACtC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,uBAAe,GAAE,CAAA;IAChC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,GAAe,CAAA;IAC7D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,GAAS,CAAA;IAE3C,MAAM,YAAY,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,eAAe,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAA;IAE1F,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,KAAK,GAAG,KAAK,CAAC,gFAAgF,CAAC,CAAA;QACrG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC5B,QAAQ,CAAC,KAAK,CAAC,CAAA;KAChB;IAED,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI;YACF,IAAI,IAAI,IAAI,YAAY,EAAE;gBACxB,cAAc,CAAC,kBAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;gBAC/C,QAAQ,CAAC,SAAS,CAAC,CAAA;aACpB;SACF;QAAC,OAAO,EAAE,EAAE;YACX,cAAc,CAAC,SAAS,CAAC,CAAA;YACzB,QAAQ,CAAC,EAAW,CAAC,CAAA;SACtB;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAA;IAEjC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;AAC7B,CAAC,CAAA;AA3BY,QAAA,sBAAsB,0BA2BlC"}
|
|
@@ -2,17 +2,27 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useWrappedModule = exports.WrappedModuleHookFactory = void 0;
|
|
4
4
|
const module_1 = require("@xyo-network/module");
|
|
5
|
+
const react_wallet_1 = require("@xyo-network/react-wallet");
|
|
5
6
|
const react_1 = require("react");
|
|
6
7
|
const useModule_1 = require("./useModule");
|
|
7
8
|
const WrappedModuleHookFactory = (wrapperObject) => {
|
|
8
9
|
return (nameOrAddress, account) => {
|
|
9
|
-
const [
|
|
10
|
+
const [providedAccount] = (0, react_wallet_1.useAccount)();
|
|
11
|
+
const [module, moduleError] = (0, useModule_1.useModule)(nameOrAddress !== null && nameOrAddress !== void 0 ? nameOrAddress : {
|
|
12
|
+
query: [wrapperObject.requiredQueries],
|
|
13
|
+
});
|
|
10
14
|
const [wrapper, setWrapper] = (0, react_1.useState)();
|
|
11
15
|
const [error, setError] = (0, react_1.useState)();
|
|
16
|
+
const accountToUse = (0, react_1.useMemo)(() => account !== null && account !== void 0 ? account : providedAccount, [account, providedAccount]);
|
|
17
|
+
if (!accountToUse) {
|
|
18
|
+
const error = Error('Module hooks require either an Account context or account parameter');
|
|
19
|
+
console.error(error.message);
|
|
20
|
+
setError(error);
|
|
21
|
+
}
|
|
12
22
|
(0, react_1.useEffect)(() => {
|
|
13
|
-
if (module) {
|
|
23
|
+
if (module && accountToUse) {
|
|
14
24
|
try {
|
|
15
|
-
const wrapper = wrapperObject.wrap(module,
|
|
25
|
+
const wrapper = wrapperObject.wrap(module, accountToUse);
|
|
16
26
|
setWrapper(wrapper);
|
|
17
27
|
}
|
|
18
28
|
catch (ex) {
|
|
@@ -24,7 +34,7 @@ const WrappedModuleHookFactory = (wrapperObject) => {
|
|
|
24
34
|
setWrapper(undefined);
|
|
25
35
|
setError(moduleError);
|
|
26
36
|
}
|
|
27
|
-
}, [module, account, moduleError]);
|
|
37
|
+
}, [module, account, moduleError, accountToUse]);
|
|
28
38
|
return [wrapper, error];
|
|
29
39
|
};
|
|
30
40
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWrappedModule.js","sourceRoot":"","sources":["../../../src/hooks/useWrappedModule.tsx"],"names":[],"mappings":";;;AAEA,gDAAmD;AACnD,
|
|
1
|
+
{"version":3,"file":"useWrappedModule.js","sourceRoot":"","sources":["../../../src/hooks/useWrappedModule.tsx"],"names":[],"mappings":";;;AAEA,gDAAmD;AACnD,4DAAsD;AACtD,iCAAoD;AAEpD,2CAAuC;AAOhC,MAAM,wBAAwB,GAAG,CAAuD,aAA4C,EAAE,EAAE;IAC7I,OAAO,CAAC,aAAsB,EAAE,OAAyB,EAAmD,EAAE;QAC5G,MAAM,CAAC,eAAe,CAAC,GAAG,IAAA,yBAAU,GAAE,CAAA;QACtC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAA,qBAAS,EACrC,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI;YACf,KAAK,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC;SACvC,CACF,CAAA;QAED,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,GAAkB,CAAA;QACxD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,GAAS,CAAA;QAE3C,MAAM,YAAY,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,eAAe,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAA;QAE1F,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,KAAK,GAAG,KAAK,CAAC,qEAAqE,CAAC,CAAA;YAC1F,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC5B,QAAQ,CAAC,KAAK,CAAC,CAAA;SAChB;QAED,IAAA,iBAAS,EAAC,GAAG,EAAE;YACb,IAAI,MAAM,IAAI,YAAY,EAAE;gBAC1B,IAAI;oBACF,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAmB,CAAA;oBAC1E,UAAU,CAAC,OAAO,CAAC,CAAA;iBACpB;gBAAC,OAAO,EAAE,EAAE;oBACX,UAAU,CAAC,SAAS,CAAC,CAAA;oBACrB,QAAQ,CAAC,EAAW,CAAC,CAAA;iBACtB;aACF;iBAAM;gBACL,UAAU,CAAC,SAAS,CAAC,CAAA;gBACrB,QAAQ,CAAC,WAAW,CAAC,CAAA;aACtB;QACH,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAA;QAEhD,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACzB,CAAC,CAAA;AACH,CAAC,CAAA;AArCY,QAAA,wBAAwB,4BAqCpC;AAEY,QAAA,gBAAgB,GAAG,IAAA,gCAAwB,EAAC,sBAAa,CAAC,CAAA"}
|