@xyo-network/react-shared 2.50.0 → 2.51.0-rc.1
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/index.js +1 -0
- package/dist/cjs/hooks/index.js.map +1 -1
- package/dist/cjs/hooks/usePayloadHash.js +17 -0
- package/dist/cjs/hooks/usePayloadHash.js.map +1 -0
- package/dist/cjs/hooks/usePromise.js +2 -2
- package/dist/cjs/hooks/usePromise.js.map +1 -1
- package/dist/docs.json +758 -358
- package/dist/esm/hooks/index.js +1 -0
- package/dist/esm/hooks/index.js.map +1 -1
- package/dist/esm/hooks/usePayloadHash.js +11 -0
- package/dist/esm/hooks/usePayloadHash.js.map +1 -0
- package/dist/esm/hooks/usePromise.js +1 -1
- package/dist/esm/hooks/usePromise.js.map +1 -1
- package/dist/types/hooks/index.d.ts +1 -0
- package/dist/types/hooks/index.d.ts.map +1 -1
- package/dist/types/hooks/usePayloadHash.d.ts +7 -0
- package/dist/types/hooks/usePayloadHash.d.ts.map +1 -0
- package/dist/types/hooks/usePromise.d.ts +7 -1
- package/dist/types/hooks/usePromise.d.ts.map +1 -1
- package/package.json +4 -3
- package/src/hooks/index.ts +1 -0
- package/src/hooks/usePayloadHash.ts +17 -0
- package/src/hooks/{usePromise.tsx → usePromise.ts} +6 -2
package/dist/esm/hooks/index.js
CHANGED
|
@@ -2,6 +2,7 @@ export * from './GradientStyles';
|
|
|
2
2
|
export * from './useDataState';
|
|
3
3
|
export * from './useIsMobile';
|
|
4
4
|
export * from './useMediaQuery';
|
|
5
|
+
export * from './usePayloadHash';
|
|
5
6
|
export * from './usePromise';
|
|
6
7
|
export * from './useShareForwardRef';
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { PayloadHasher } from '@xyo-network/core';
|
|
2
|
+
import { usePromise } from './usePromise';
|
|
3
|
+
export const usePayloadHash = (payload, dependencies) => {
|
|
4
|
+
return usePromise(payload ? PayloadHasher.hashAsync(payload) : undefined, [payload, ...(dependencies ?? [])])[0];
|
|
5
|
+
};
|
|
6
|
+
export const usePayloadHashes = (payloads, dependencies) => {
|
|
7
|
+
return usePromise(payloads
|
|
8
|
+
? Promise.all(payloads.map(async (payload) => [payload, await PayloadHasher.hashAsync(payload)]))
|
|
9
|
+
: undefined, [payloads, ...(dependencies ?? [])])[0];
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=usePayloadHash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePayloadHash.js","sourceRoot":"","sources":["../../../src/hooks/usePayloadHash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,CAAC,MAAM,cAAc,GAAG,CAA2B,OAAoC,EAAE,YAAwB,EAAE,EAAE;IACzH,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAClH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAA2B,QAAuC,EAAE,YAAwB,EAAE,EAAE;IAC9H,OAAO,UAAU,CACf,QAAQ;QACN,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAA8B,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC9H,CAAC,CAAC,SAAS,EACb,CAAC,QAAQ,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CACpC,CAAC,CAAC,CAAC,CAAA;AACN,CAAC,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Inspired from https://github.com/bsonntag/react-use-promise
|
|
2
2
|
import { useAsyncEffect } from '@xylabs/react-async-effect';
|
|
3
3
|
import { useReducer } from 'react';
|
|
4
|
-
var State;
|
|
4
|
+
export var State;
|
|
5
5
|
(function (State) {
|
|
6
6
|
State["pending"] = "pending";
|
|
7
7
|
State["rejected"] = "rejected";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePromise.js","sourceRoot":"","sources":["../../../src/hooks/usePromise.
|
|
1
|
+
{"version":3,"file":"usePromise.js","sourceRoot":"","sources":["../../../src/hooks/usePromise.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAE9D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAElC,MAAM,CAAN,IAAY,KAIX;AAJD,WAAY,KAAK;IACf,4BAAmB,CAAA;IACnB,8BAAqB,CAAA;IACrB,8BAAqB,CAAA;AACvB,CAAC,EAJW,KAAK,KAAL,KAAK,QAIhB;AAQD,MAAM,YAAY,GAAiB;IACjC,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,KAAK,CAAC,OAAO;CACrB,CAAA;AAMD,MAAM,OAAO,GAAG,CAAC,MAAoB,EAAE,MAAc,EAAE,EAAE;IACvD,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,KAAK,CAAC,OAAO;YAChB,OAAO,YAAY,CAAA;QAErB,KAAK,KAAK,CAAC,QAAQ;YACjB,OAAO;gBACL,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,MAAM,CAAC,OAAO;gBACtB,KAAK,EAAE,KAAK,CAAC,QAAQ;aACtB,CAAA;QAEH,KAAK,KAAK,CAAC,QAAQ;YACjB,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,OAAO;gBACrB,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,KAAK,CAAC,QAAQ;aACtB,CAAA;QAEH;YACE,MAAM,KAAK,CAAC,wBAAwB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;KACzE;AACH,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,OAA6B,EAC7B,eAA0B,EAAE,EACiC,EAAE;IAC/D,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;IAE9E,cAAc;IACZ,uDAAuD;IACvD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC,OAAO,EAAE;YACZ,OAAM;SACP;QAED,IAAI,QAAQ,GAAG,KAAK,CAAA;QAEpB,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAEjC,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAA;YAC5B,CAAC,QAAQ;gBACP,CAAC,CAAC,QAAQ,CAAC;oBACP,OAAO,EAAE,MAAM;oBACf,IAAI,EAAE,KAAK,CAAC,QAAQ;iBACrB,CAAC;gBACJ,CAAC,CAAC,SAAS,CAAA;SACd;QAAC,OAAO,CAAC,EAAE;YACV,CAAC,QAAQ;gBACP,CAAC,CAAC,QAAQ,CAAC;oBACP,OAAO,EAAE,CAAU;oBACnB,IAAI,EAAE,KAAK,CAAC,QAAQ;iBACrB,CAAC;gBACJ,CAAC,CAAC,SAAS,CAAA;SACd;QAED,OAAO,GAAG,EAAE;YACV,QAAQ,GAAG,IAAI,CAAA;QACjB,CAAC,CAAA;IACH,CAAC;IACD,oEAAoE;IACpE,uDAAuD;IACvD,YAAY,CACb,CAAA;IAED,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;AAC/B,CAAC,CAAA"}
|
|
@@ -2,6 +2,7 @@ export * from './GradientStyles';
|
|
|
2
2
|
export * from './useDataState';
|
|
3
3
|
export * from './useIsMobile';
|
|
4
4
|
export * from './useMediaQuery';
|
|
5
|
+
export * from './usePayloadHash';
|
|
5
6
|
export * from './usePromise';
|
|
6
7
|
export * from './useShareForwardRef';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const usePayloadHash: <TPayload extends import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
2
|
+
schema: string;
|
|
3
|
+
}>(payload: TPayload | null | undefined, dependencies?: unknown[]) => string | undefined;
|
|
4
|
+
export declare const usePayloadHashes: <TPayload extends import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
5
|
+
schema: string;
|
|
6
|
+
}>(payloads: TPayload[] | null | undefined, dependencies?: unknown[]) => [TPayload, string][] | undefined;
|
|
7
|
+
//# sourceMappingURL=usePayloadHash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePayloadHash.d.ts","sourceRoot":"","sources":["../../../src/hooks/usePayloadHash.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,cAAc;;wDAAmF,OAAO,EAAE,uBAEtH,CAAA;AAED,eAAO,MAAM,gBAAgB;;2DAAsF,OAAO,EAAE,qCAO3H,CAAA"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
+
import { Promisable } from '@xyo-network/promise';
|
|
2
|
+
export declare enum State {
|
|
3
|
+
pending = "pending",
|
|
4
|
+
rejected = "rejected",
|
|
5
|
+
resolved = "resolved"
|
|
6
|
+
}
|
|
1
7
|
/**
|
|
2
8
|
* usePromise -
|
|
3
9
|
*/
|
|
4
|
-
export declare const usePromise: <
|
|
10
|
+
export declare const usePromise: <TResult>(promise?: Promisable<TResult, never> | undefined, dependencies?: unknown[]) => [TResult | undefined, Error | undefined, State | undefined];
|
|
5
11
|
//# sourceMappingURL=usePromise.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePromise.d.ts","sourceRoot":"","sources":["../../../src/hooks/usePromise.
|
|
1
|
+
{"version":3,"file":"usePromise.d.ts","sourceRoot":"","sources":["../../../src/hooks/usePromise.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAGjD,oBAAY,KAAK;IACf,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AA0CD;;GAEG;AACH,eAAO,MAAM,UAAU,6EAEP,OAAO,EAAE,gEA0CxB,CAAA"}
|
package/package.json
CHANGED
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
"@xylabs/react-flexbox": "^2.17.3",
|
|
18
18
|
"@xylabs/react-link": "^2.17.3",
|
|
19
19
|
"@xylabs/react-shared": "^2.17.3",
|
|
20
|
-
"@xyo-network/react-event": "^2.
|
|
20
|
+
"@xyo-network/react-event": "^2.51.0-rc.1"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@storybook/react": "^7.0.
|
|
23
|
+
"@storybook/react": "^7.0.18",
|
|
24
24
|
"@xylabs/react-quick-tip-button": "^2.17.3",
|
|
25
25
|
"@xylabs/ts-scripts-yarn3": "^2.17.13",
|
|
26
26
|
"@xylabs/tsconfig-react": "^2.17.13",
|
|
@@ -78,5 +78,6 @@
|
|
|
78
78
|
},
|
|
79
79
|
"sideEffects": false,
|
|
80
80
|
"types": "dist/types/index.d.ts",
|
|
81
|
-
"version": "2.
|
|
81
|
+
"version": "2.51.0-rc.1",
|
|
82
|
+
"stableVersion": "2.50.0"
|
|
82
83
|
}
|
package/src/hooks/index.ts
CHANGED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { PayloadHasher } from '@xyo-network/core'
|
|
2
|
+
import { Payload } from '@xyo-network/payload-model'
|
|
3
|
+
|
|
4
|
+
import { usePromise } from './usePromise'
|
|
5
|
+
|
|
6
|
+
export const usePayloadHash = <TPayload extends Payload>(payload: TPayload | undefined | null, dependencies?: unknown[]) => {
|
|
7
|
+
return usePromise(payload ? PayloadHasher.hashAsync(payload) : undefined, [payload, ...(dependencies ?? [])])[0]
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export const usePayloadHashes = <TPayload extends Payload>(payloads: TPayload[] | undefined | null, dependencies?: unknown[]) => {
|
|
11
|
+
return usePromise(
|
|
12
|
+
payloads
|
|
13
|
+
? Promise.all(payloads.map<Promise<[TPayload, string]>>(async (payload) => [payload, await PayloadHasher.hashAsync(payload)]))
|
|
14
|
+
: undefined,
|
|
15
|
+
[payloads, ...(dependencies ?? [])],
|
|
16
|
+
)[0]
|
|
17
|
+
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// Inspired from https://github.com/bsonntag/react-use-promise
|
|
2
2
|
|
|
3
3
|
import { useAsyncEffect } from '@xylabs/react-async-effect'
|
|
4
|
+
import { Promisable } from '@xyo-network/promise'
|
|
4
5
|
import { useReducer } from 'react'
|
|
5
6
|
|
|
6
|
-
enum State {
|
|
7
|
+
export enum State {
|
|
7
8
|
pending = 'pending',
|
|
8
9
|
rejected = 'rejected',
|
|
9
10
|
resolved = 'resolved',
|
|
@@ -52,7 +53,10 @@ const reducer = (_state: PromiseState, action: Action) => {
|
|
|
52
53
|
/**
|
|
53
54
|
* usePromise -
|
|
54
55
|
*/
|
|
55
|
-
export const usePromise = <
|
|
56
|
+
export const usePromise = <TResult>(
|
|
57
|
+
promise?: Promisable<TResult>,
|
|
58
|
+
dependencies: unknown[] = [],
|
|
59
|
+
): [TResult | undefined, Error | undefined, State | undefined] => {
|
|
56
60
|
const [{ error, result, state }, dispatch] = useReducer(reducer, defaultState)
|
|
57
61
|
|
|
58
62
|
useAsyncEffect(
|