@xyo-network/react-shared 2.49.13 → 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.
Files changed (33) hide show
  1. package/dist/cjs/hooks/index.js +1 -0
  2. package/dist/cjs/hooks/index.js.map +1 -1
  3. package/dist/cjs/hooks/usePayloadHash.js +17 -0
  4. package/dist/cjs/hooks/usePayloadHash.js.map +1 -0
  5. package/dist/cjs/hooks/usePromise.js +2 -2
  6. package/dist/cjs/hooks/usePromise.js.map +1 -1
  7. package/dist/docs.json +42137 -4776
  8. package/dist/esm/hooks/index.js +1 -0
  9. package/dist/esm/hooks/index.js.map +1 -1
  10. package/dist/esm/hooks/usePayloadHash.js +11 -0
  11. package/dist/esm/hooks/usePayloadHash.js.map +1 -0
  12. package/dist/esm/hooks/usePromise.js +1 -1
  13. package/dist/esm/hooks/usePromise.js.map +1 -1
  14. package/dist/types/components/Ellipsize.d.ts +4 -2
  15. package/dist/types/components/Ellipsize.d.ts.map +1 -1
  16. package/dist/types/components/pluginValidation/DataMissing.d.ts +1 -2
  17. package/dist/types/components/pluginValidation/DataMissing.d.ts.map +1 -1
  18. package/dist/types/contexts/contextEx/ContextExProviderProps.d.ts +1 -2
  19. package/dist/types/contexts/contextEx/ContextExProviderProps.d.ts.map +1 -1
  20. package/dist/types/hooks/index.d.ts +1 -0
  21. package/dist/types/hooks/index.d.ts.map +1 -1
  22. package/dist/types/hooks/usePayloadHash.d.ts +7 -0
  23. package/dist/types/hooks/usePayloadHash.d.ts.map +1 -0
  24. package/dist/types/hooks/usePromise.d.ts +7 -1
  25. package/dist/types/hooks/usePromise.d.ts.map +1 -1
  26. package/package.json +11 -10
  27. package/src/components/Ellipsize.tsx +2 -2
  28. package/src/components/pluginValidation/DataMissing.tsx +1 -1
  29. package/src/contexts/contextEx/ContextExProviderProps.ts +1 -1
  30. package/src/hooks/index.ts +1 -0
  31. package/src/hooks/usePayloadHash.ts +17 -0
  32. package/src/hooks/{usePromise.tsx → usePromise.ts} +6 -2
  33. package/typedoc.json +5 -0
@@ -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"}
@@ -1,7 +1,10 @@
1
1
  import { BoxProps, TypographyProps } from '@mui/material';
2
2
  import { WithChildren } from '@xylabs/react-shared';
3
3
  import { ElementType } from 'react';
4
- interface TypographyWithComponentProps<Comp extends ElementType = ElementType> extends TypographyProps {
4
+ export interface EllipsizeRootProps extends BoxProps {
5
+ beforeLineHeight?: string | number;
6
+ }
7
+ export interface TypographyWithComponentProps<Comp extends ElementType = ElementType> extends TypographyProps {
5
8
  component?: Comp;
6
9
  ellipsisPosition?: 'start' | 'end';
7
10
  }
@@ -10,5 +13,4 @@ export interface EllipsizeBoxProps extends BoxProps {
10
13
  typographyProps?: TypographyWithComponentProps;
11
14
  }
12
15
  export declare const EllipsizeBox: import("react").ForwardRefExoticComponent<Omit<WithChildren<EllipsizeBoxProps>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
13
- export {};
14
16
  //# sourceMappingURL=Ellipsize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Ellipsize.d.ts","sourceRoot":"","sources":["../../../src/components/Ellipsize.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,QAAQ,EAAsB,eAAe,EAAE,MAAM,eAAe,CAAA;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAqC,MAAM,OAAO,CAAA;AA0EtE,UAAU,4BAA4B,CAAC,IAAI,SAAS,WAAW,GAAG,WAAW,CAAE,SAAQ,eAAe;IACpG,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,gBAAgB,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;CACnC;AAED,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;IACjD,gBAAgB,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;IAClC,eAAe,CAAC,EAAE,4BAA4B,CAAA;CAC/C;AAED,eAAO,MAAM,YAAY,yIAexB,CAAA"}
1
+ {"version":3,"file":"Ellipsize.d.ts","sourceRoot":"","sources":["../../../src/components/Ellipsize.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,QAAQ,EAAsB,eAAe,EAAE,MAAM,eAAe,CAAA;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAqC,MAAM,OAAO,CAAA;AAQtE,MAAM,WAAW,kBAAmB,SAAQ,QAAQ;IAClD,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACnC;AAgED,MAAM,WAAW,4BAA4B,CAAC,IAAI,SAAS,WAAW,GAAG,WAAW,CAAE,SAAQ,eAAe;IAC3G,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,gBAAgB,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;CACnC;AAED,MAAM,WAAW,iBAAkB,SAAQ,QAAQ;IACjD,gBAAgB,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;IAClC,eAAe,CAAC,EAAE,4BAA4B,CAAA;CAC/C;AAED,eAAO,MAAM,YAAY,yIAexB,CAAA"}
@@ -1,8 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { AlertProps } from '@mui/material';
3
- interface PayloadDataMissingProps extends AlertProps {
3
+ export interface PayloadDataMissingProps extends AlertProps {
4
4
  alertBody?: string;
5
5
  }
6
6
  export declare const PayloadDataMissing: React.FC<PayloadDataMissingProps>;
7
- export {};
8
7
  //# sourceMappingURL=DataMissing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataMissing.d.ts","sourceRoot":"","sources":["../../../../src/components/pluginValidation/DataMissing.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAS,UAAU,EAAc,MAAM,eAAe,CAAA;AAE7D,UAAU,uBAAwB,SAAQ,UAAU;IAClD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAOhE,CAAA"}
1
+ {"version":3,"file":"DataMissing.d.ts","sourceRoot":"","sources":["../../../../src/components/pluginValidation/DataMissing.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAS,UAAU,EAAc,MAAM,eAAe,CAAA;AAE7D,MAAM,WAAW,uBAAwB,SAAQ,UAAU;IACzD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAOhE,CAAA"}
@@ -1,7 +1,6 @@
1
1
  import { WithChildren } from '@xylabs/react-shared';
2
- type EmptyObject = {};
2
+ export type EmptyObject = {};
3
3
  export type ContextExProviderProps<T extends EmptyObject = EmptyObject> = WithChildren<{
4
4
  required?: boolean;
5
5
  } & T>;
6
- export {};
7
6
  //# sourceMappingURL=ContextExProviderProps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContextExProviderProps.d.ts","sourceRoot":"","sources":["../../../../src/contexts/contextEx/ContextExProviderProps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGnD,KAAK,WAAW,GAAG,EAAE,CAAA;AAErB,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IAAI,YAAY,CACpF;IACE,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,GAAG,CAAC,CACN,CAAA"}
1
+ {"version":3,"file":"ContextExProviderProps.d.ts","sourceRoot":"","sources":["../../../../src/contexts/contextEx/ContextExProviderProps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGnD,MAAM,MAAM,WAAW,GAAG,EAAE,CAAA;AAE5B,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IAAI,YAAY,CACpF;IACE,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,GAAG,CAAC,CACN,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
@@ -11,17 +11,17 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@xylabs/pixel": "^1.4.13",
14
- "@xylabs/react-appbar": "^2.17.2",
15
- "@xylabs/react-async-effect": "^2.17.2",
16
- "@xylabs/react-button": "^2.17.2",
17
- "@xylabs/react-flexbox": "^2.17.2",
18
- "@xylabs/react-link": "^2.17.2",
19
- "@xylabs/react-shared": "^2.17.2",
20
- "@xyo-network/react-event": "^2.49.13"
14
+ "@xylabs/react-appbar": "^2.17.3",
15
+ "@xylabs/react-async-effect": "^2.17.3",
16
+ "@xylabs/react-button": "^2.17.3",
17
+ "@xylabs/react-flexbox": "^2.17.3",
18
+ "@xylabs/react-link": "^2.17.3",
19
+ "@xylabs/react-shared": "^2.17.3",
20
+ "@xyo-network/react-event": "^2.51.0-rc.1"
21
21
  },
22
22
  "devDependencies": {
23
- "@storybook/react": "^7.0.12",
24
- "@xylabs/react-quick-tip-button": "^2.17.2",
23
+ "@storybook/react": "^7.0.18",
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",
27
27
  "typescript": "^5.0.4"
@@ -78,5 +78,6 @@
78
78
  },
79
79
  "sideEffects": false,
80
80
  "types": "dist/types/index.d.ts",
81
- "version": "2.49.13"
81
+ "version": "2.51.0-rc.1",
82
+ "stableVersion": "2.50.0"
82
83
  }
@@ -8,7 +8,7 @@ import { ElementType, forwardRef, useCallback, useState } from 'react'
8
8
 
9
9
  const ComponentName = 'Ellipsize'
10
10
 
11
- interface EllipsizeRootProps extends BoxProps {
11
+ export interface EllipsizeRootProps extends BoxProps {
12
12
  beforeLineHeight?: string | number
13
13
  }
14
14
 
@@ -74,7 +74,7 @@ const useClientHeight = () => {
74
74
  }
75
75
 
76
76
  // See - https://mui.com/material-ui/guides/composition/#with-typescript
77
- interface TypographyWithComponentProps<Comp extends ElementType = ElementType> extends TypographyProps {
77
+ export interface TypographyWithComponentProps<Comp extends ElementType = ElementType> extends TypographyProps {
78
78
  component?: Comp
79
79
  ellipsisPosition?: 'start' | 'end'
80
80
  }
@@ -1,6 +1,6 @@
1
1
  import { Alert, AlertProps, AlertTitle } from '@mui/material'
2
2
 
3
- interface PayloadDataMissingProps extends AlertProps {
3
+ export interface PayloadDataMissingProps extends AlertProps {
4
4
  alertBody?: string
5
5
  }
6
6
 
@@ -1,7 +1,7 @@
1
1
  import { WithChildren } from '@xylabs/react-shared'
2
2
 
3
3
  // eslint-disable-next-line @typescript-eslint/ban-types
4
- type EmptyObject = {}
4
+ export type EmptyObject = {}
5
5
 
6
6
  export type ContextExProviderProps<T extends EmptyObject = EmptyObject> = WithChildren<
7
7
  {
@@ -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(
package/typedoc.json ADDED
@@ -0,0 +1,5 @@
1
+ {
2
+ "$schema": "https://typedoc.org/schema.json",
3
+ "entryPoints": ["src/index.ts"],
4
+ "tsconfig": "./tsconfig.typedoc.json"
5
+ }