@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.
@@ -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.tsx"],"names":[],"mappings":"AAAA,8DAA8D;AAE9D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAElC,IAAK,KAIJ;AAJD,WAAK,KAAK;IACR,4BAAmB,CAAA;IACnB,8BAAqB,CAAA;IACrB,8BAAqB,CAAA;AACvB,CAAC,EAJI,KAAK,KAAL,KAAK,QAIT;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,CAA8B,OAAW,EAAE,eAA0B,EAAE,EAAE,EAAE;IACnG,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"}
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: <D, T extends D | Promise<D>>(promise?: T | undefined, dependencies?: unknown[]) => any[];
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.tsx"],"names":[],"mappings":"AAmDA;;GAEG;AACH,eAAO,MAAM,UAAU,wEAA4D,OAAO,EAAE,UAyC3F,CAAA"}
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.50.0"
20
+ "@xyo-network/react-event": "^2.51.0-rc.1"
21
21
  },
22
22
  "devDependencies": {
23
- "@storybook/react": "^7.0.17",
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.50.0"
81
+ "version": "2.51.0-rc.1",
82
+ "stableVersion": "2.50.0"
82
83
  }
@@ -2,5 +2,6 @@ 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'
@@ -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 = <D, T extends Promise<D> | D>(promise?: T, dependencies: unknown[] = []) => {
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(