@xyo-network/react-module 2.38.17

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 (114) hide show
  1. package/LICENSE +165 -0
  2. package/README.md +70 -0
  3. package/dist/cjs/ModuleRenderProps.d.ts +5 -0
  4. package/dist/cjs/ModuleRenderProps.d.ts.map +1 -0
  5. package/dist/cjs/ModuleRenderProps.js +3 -0
  6. package/dist/cjs/ModuleRenderProps.js.map +1 -0
  7. package/dist/cjs/components/ArchivistCard.d.ts +6 -0
  8. package/dist/cjs/components/ArchivistCard.d.ts.map +1 -0
  9. package/dist/cjs/components/ArchivistCard.js +15 -0
  10. package/dist/cjs/components/ArchivistCard.js.map +1 -0
  11. package/dist/cjs/components/ArchivistCardHeader.d.ts +6 -0
  12. package/dist/cjs/components/ArchivistCardHeader.d.ts.map +1 -0
  13. package/dist/cjs/components/ArchivistCardHeader.js +12 -0
  14. package/dist/cjs/components/ArchivistCardHeader.js.map +1 -0
  15. package/dist/cjs/components/ArchivistContent.d.ts +6 -0
  16. package/dist/cjs/components/ArchivistContent.d.ts.map +1 -0
  17. package/dist/cjs/components/ArchivistContent.js +32 -0
  18. package/dist/cjs/components/ArchivistContent.js.map +1 -0
  19. package/dist/cjs/components/Card.d.ts +5 -0
  20. package/dist/cjs/components/Card.d.ts.map +1 -0
  21. package/dist/cjs/components/Card.js +15 -0
  22. package/dist/cjs/components/Card.js.map +1 -0
  23. package/dist/cjs/components/CardActions.d.ts +5 -0
  24. package/dist/cjs/components/CardActions.d.ts.map +1 -0
  25. package/dist/cjs/components/CardActions.js +15 -0
  26. package/dist/cjs/components/CardActions.js.map +1 -0
  27. package/dist/cjs/components/CardContent.d.ts +5 -0
  28. package/dist/cjs/components/CardContent.d.ts.map +1 -0
  29. package/dist/cjs/components/CardContent.js +29 -0
  30. package/dist/cjs/components/CardContent.js.map +1 -0
  31. package/dist/cjs/components/CardHeader.d.ts +5 -0
  32. package/dist/cjs/components/CardHeader.d.ts.map +1 -0
  33. package/dist/cjs/components/CardHeader.js +15 -0
  34. package/dist/cjs/components/CardHeader.js.map +1 -0
  35. package/dist/cjs/components/DetailsBox.d.ts +5 -0
  36. package/dist/cjs/components/DetailsBox.d.ts.map +1 -0
  37. package/dist/cjs/components/DetailsBox.js +16 -0
  38. package/dist/cjs/components/DetailsBox.js.map +1 -0
  39. package/dist/cjs/components/TableCell.d.ts +5 -0
  40. package/dist/cjs/components/TableCell.d.ts.map +1 -0
  41. package/dist/cjs/components/TableCell.js +16 -0
  42. package/dist/cjs/components/TableCell.js.map +1 -0
  43. package/dist/cjs/components/index.d.ts +6 -0
  44. package/dist/cjs/components/index.d.ts.map +1 -0
  45. package/dist/cjs/components/index.js +9 -0
  46. package/dist/cjs/components/index.js.map +1 -0
  47. package/dist/cjs/index.d.ts +3 -0
  48. package/dist/cjs/index.d.ts.map +1 -0
  49. package/dist/cjs/index.js +6 -0
  50. package/dist/cjs/index.js.map +1 -0
  51. package/dist/docs.json +869 -0
  52. package/dist/esm/ModuleRenderProps.d.ts +5 -0
  53. package/dist/esm/ModuleRenderProps.d.ts.map +1 -0
  54. package/dist/esm/ModuleRenderProps.js +2 -0
  55. package/dist/esm/ModuleRenderProps.js.map +1 -0
  56. package/dist/esm/components/ArchivistCard.d.ts +6 -0
  57. package/dist/esm/components/ArchivistCard.d.ts.map +1 -0
  58. package/dist/esm/components/ArchivistCard.js +9 -0
  59. package/dist/esm/components/ArchivistCard.js.map +1 -0
  60. package/dist/esm/components/ArchivistCardHeader.d.ts +6 -0
  61. package/dist/esm/components/ArchivistCardHeader.d.ts.map +1 -0
  62. package/dist/esm/components/ArchivistCardHeader.js +6 -0
  63. package/dist/esm/components/ArchivistCardHeader.js.map +1 -0
  64. package/dist/esm/components/ArchivistContent.d.ts +6 -0
  65. package/dist/esm/components/ArchivistContent.d.ts.map +1 -0
  66. package/dist/esm/components/ArchivistContent.js +25 -0
  67. package/dist/esm/components/ArchivistContent.js.map +1 -0
  68. package/dist/esm/components/Card.d.ts +5 -0
  69. package/dist/esm/components/Card.d.ts.map +1 -0
  70. package/dist/esm/components/Card.js +9 -0
  71. package/dist/esm/components/Card.js.map +1 -0
  72. package/dist/esm/components/CardActions.d.ts +5 -0
  73. package/dist/esm/components/CardActions.d.ts.map +1 -0
  74. package/dist/esm/components/CardActions.js +9 -0
  75. package/dist/esm/components/CardActions.js.map +1 -0
  76. package/dist/esm/components/CardContent.d.ts +5 -0
  77. package/dist/esm/components/CardContent.d.ts.map +1 -0
  78. package/dist/esm/components/CardContent.js +23 -0
  79. package/dist/esm/components/CardContent.js.map +1 -0
  80. package/dist/esm/components/CardHeader.d.ts +5 -0
  81. package/dist/esm/components/CardHeader.d.ts.map +1 -0
  82. package/dist/esm/components/CardHeader.js +9 -0
  83. package/dist/esm/components/CardHeader.js.map +1 -0
  84. package/dist/esm/components/DetailsBox.d.ts +5 -0
  85. package/dist/esm/components/DetailsBox.d.ts.map +1 -0
  86. package/dist/esm/components/DetailsBox.js +10 -0
  87. package/dist/esm/components/DetailsBox.js.map +1 -0
  88. package/dist/esm/components/TableCell.d.ts +5 -0
  89. package/dist/esm/components/TableCell.d.ts.map +1 -0
  90. package/dist/esm/components/TableCell.js +10 -0
  91. package/dist/esm/components/TableCell.js.map +1 -0
  92. package/dist/esm/components/index.d.ts +6 -0
  93. package/dist/esm/components/index.d.ts.map +1 -0
  94. package/dist/esm/components/index.js +6 -0
  95. package/dist/esm/components/index.js.map +1 -0
  96. package/dist/esm/index.d.ts +3 -0
  97. package/dist/esm/index.d.ts.map +1 -0
  98. package/dist/esm/index.js +3 -0
  99. package/dist/esm/index.js.map +1 -0
  100. package/package.json +83 -0
  101. package/src/ModuleRenderProps.tsx +5 -0
  102. package/src/components/ArchivistCard.stories.tsx +54 -0
  103. package/src/components/ArchivistCard.tsx +17 -0
  104. package/src/components/ArchivistCardHeader.tsx +9 -0
  105. package/src/components/ArchivistContent.tsx +37 -0
  106. package/src/components/Card.stories.tsx +49 -0
  107. package/src/components/Card.tsx +16 -0
  108. package/src/components/CardActions.tsx +15 -0
  109. package/src/components/CardContent.tsx +35 -0
  110. package/src/components/CardHeader.tsx +17 -0
  111. package/src/components/DetailsBox.tsx +15 -0
  112. package/src/components/TableCell.tsx +15 -0
  113. package/src/components/index.ts +5 -0
  114. package/src/index.ts +2 -0
@@ -0,0 +1,5 @@
1
+ import { Module } from '@xyo-network/module';
2
+ export interface ModuleRenderProps<T extends Module = Module> {
3
+ module?: T;
4
+ }
5
+ //# sourceMappingURL=ModuleRenderProps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleRenderProps.d.ts","sourceRoot":"","sources":["../../src/ModuleRenderProps.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE5C,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAC1D,MAAM,CAAC,EAAE,CAAC,CAAA;CACX"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ModuleRenderProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleRenderProps.js","sourceRoot":"","sources":["../../src/ModuleRenderProps.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { CardProps } from '@mui/material';
3
+ import { PayloadArchivist } from '@xyo-network/archivist';
4
+ import { ModuleRenderProps } from '../ModuleRenderProps';
5
+ export declare const ArchivistCard: React.FC<CardProps & ModuleRenderProps<PayloadArchivist>>;
6
+ //# sourceMappingURL=ArchivistCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArchivistCard.d.ts","sourceRoot":"","sources":["../../../src/components/ArchivistCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAQ,SAAS,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAKxD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,CAQnF,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Card } from '@mui/material';
3
+ import { ArchivistCardHeader } from './ArchivistCardHeader';
4
+ import { ArchivistCardContent } from './ArchivistContent';
5
+ import { ModuleCardActions } from './CardActions';
6
+ export const ArchivistCard = ({ module, ...props }) => {
7
+ return (_jsxs(Card, { ...props, children: [_jsx(ArchivistCardHeader, { module: module }), _jsx(ArchivistCardContent, { module: module }), _jsx(ModuleCardActions, { module: module })] }));
8
+ };
9
+ //# sourceMappingURL=ArchivistCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArchivistCard.js","sourceRoot":"","sources":["../../../src/components/ArchivistCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAa,MAAM,eAAe,CAAA;AAI/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEjD,MAAM,CAAC,MAAM,aAAa,GAA8D,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAC/G,OAAO,CACL,MAAC,IAAI,OAAK,KAAK,aACb,KAAC,mBAAmB,IAAC,MAAM,EAAE,MAAM,GAAI,EACvC,KAAC,oBAAoB,IAAC,MAAM,EAAE,MAAM,GAAI,EACxC,KAAC,iBAAiB,IAAC,MAAM,EAAE,MAAM,GAAI,IAChC,CACR,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { CardHeaderProps } from '@mui/material';
3
+ import { PayloadArchivist } from '@xyo-network/archivist';
4
+ import { ModuleRenderProps } from '../ModuleRenderProps';
5
+ export declare const ArchivistCardHeader: React.FC<ModuleRenderProps<PayloadArchivist> & CardHeaderProps>;
6
+ //# sourceMappingURL=ArchivistCardHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArchivistCardHeader.d.ts","sourceRoot":"","sources":["../../../src/components/ArchivistCardHeader.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAGxD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,eAAe,CAE/F,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { ModuleCardHeader } from './CardHeader';
3
+ export const ArchivistCardHeader = ({ title, module, ...props }) => {
4
+ return _jsx(ModuleCardHeader, { module: module, title: title ?? 'Archivist', ...props });
5
+ };
6
+ //# sourceMappingURL=ArchivistCardHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArchivistCardHeader.js","sourceRoot":"","sources":["../../../src/components/ArchivistCardHeader.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C,MAAM,CAAC,MAAM,mBAAmB,GAAoE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAClI,OAAO,KAAC,gBAAgB,IAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,WAAW,KAAM,KAAK,GAAI,CAAA;AACrF,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { CardContentProps } from '@mui/material';
3
+ import { PayloadArchivist } from '@xyo-network/archivist';
4
+ import { ModuleRenderProps } from '../ModuleRenderProps';
5
+ export declare const ArchivistCardContent: React.FC<ModuleRenderProps<PayloadArchivist> & CardContentProps>;
6
+ //# sourceMappingURL=ArchivistContent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArchivistContent.d.ts","sourceRoot":"","sources":["../../../src/components/ArchivistContent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAc,MAAM,eAAe,CAAA;AAI5D,OAAO,EAAE,gBAAgB,EAAsB,MAAM,wBAAwB,CAAA;AAI7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAGxD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAyBjG,CAAA"}
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Typography } from '@mui/material';
3
+ import { useAsyncEffect } from '@xylabs/react-shared';
4
+ import { EthAddress } from '@xylabs/sdk-js';
5
+ import { EthAccountBox } from '@xylabs/sdk-react';
6
+ import { XyoModuleWrapper } from '@xyo-network/module';
7
+ import { useState } from 'react';
8
+ import { ModuleCardContent } from './CardContent';
9
+ export const ArchivistCardContent = ({ children, module, ...props }) => {
10
+ const [config, setConfig] = useState();
11
+ useAsyncEffect(
12
+ // eslint-disable-next-line react-hooks/exhaustive-deps
13
+ async (mounted) => {
14
+ const wrapper = module ? new XyoModuleWrapper(module) : undefined;
15
+ const payloads = await wrapper?.discover();
16
+ console.log(`Payloads: ${JSON.stringify(payloads, null, 2)}`);
17
+ if (mounted()) {
18
+ setConfig(payloads?.[0]);
19
+ }
20
+ }, [module]);
21
+ return (_jsxs(ModuleCardContent, { module: module, ...props, children: [_jsx(Typography, { children: "Parents" }), config?.parents?.commit?.map((address) => {
22
+ return _jsx(EthAccountBox, { address: EthAddress.fromString(address) }, address);
23
+ }), children] }));
24
+ };
25
+ //# sourceMappingURL=ArchivistContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArchivistContent.js","sourceRoot":"","sources":["../../../src/components/ArchivistContent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAoB,UAAU,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAGhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEjD,MAAM,CAAC,MAAM,oBAAoB,GAAqE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACvI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAsB,CAAA;IAE1D,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACjE,MAAM,QAAQ,GAAG,MAAM,OAAO,EAAE,QAAQ,EAAE,CAAA;QAC1C,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;QAC7D,IAAI,OAAO,EAAE,EAAE;YACb,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;SACzB;IACH,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAA;IAED,OAAO,CACL,MAAC,iBAAiB,IAAC,MAAM,EAAE,MAAM,KAAM,KAAK,aAC1C,KAAC,UAAU,0BAAqB,EAC/B,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBACxC,OAAO,KAAC,aAAa,IAAe,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,IAAhD,OAAO,CAA6C,CAAA;YACjF,CAAC,CAAC,EACD,QAAQ,IACS,CACrB,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { CardProps } from '@mui/material';
3
+ import { ModuleRenderProps } from '../ModuleRenderProps';
4
+ export declare const ModuleCard: React.FC<CardProps & ModuleRenderProps>;
5
+ //# sourceMappingURL=Card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../src/components/Card.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAQ,SAAS,EAAE,MAAM,eAAe,CAAA;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAKxD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,GAAG,iBAAiB,CAQ9D,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Card } from '@mui/material';
3
+ import { ModuleCardActions } from './CardActions';
4
+ import { ModuleCardContent } from './CardContent';
5
+ import { ModuleCardHeader } from './CardHeader';
6
+ export const ModuleCard = ({ module, ...props }) => {
7
+ return (_jsxs(Card, { ...props, children: [_jsx(ModuleCardHeader, { module: module }), _jsx(ModuleCardContent, { module: module }), _jsx(ModuleCardActions, { module: module })] }));
8
+ };
9
+ //# sourceMappingURL=Card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.js","sourceRoot":"","sources":["../../../src/components/Card.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAa,MAAM,eAAe,CAAA;AAG/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C,MAAM,CAAC,MAAM,UAAU,GAA4C,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAC1F,OAAO,CACL,MAAC,IAAI,OAAK,KAAK,aACb,KAAC,gBAAgB,IAAC,MAAM,EAAE,MAAM,GAAI,EACpC,KAAC,iBAAiB,IAAC,MAAM,EAAE,MAAM,GAAI,EACrC,KAAC,iBAAiB,IAAC,MAAM,EAAE,MAAM,GAAI,IAChC,CACR,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { CardActionsProps } from '@mui/material';
3
+ import { ModuleRenderProps } from '../ModuleRenderProps';
4
+ export declare const ModuleCardActions: React.FC<CardActionsProps & ModuleRenderProps>;
5
+ //# sourceMappingURL=CardActions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CardActions.d.ts","sourceRoot":"","sources":["../../../src/components/CardActions.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAe,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAI7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAExD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,GAAG,iBAAiB,CAQ5E,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { CardActions } from '@mui/material';
3
+ import { ButtonEx } from '@xylabs/react-button';
4
+ import { XyoModuleWrapper } from '@xyo-network/module';
5
+ export const ModuleCardActions = ({ children, module, ...props }) => {
6
+ const wrapper = module ? new XyoModuleWrapper(module) : undefined;
7
+ return (_jsxs(CardActions, { ...props, children: [_jsx(ButtonEx, { onClick: () => wrapper?.discover(), children: "Discover" }), children] }));
8
+ };
9
+ //# sourceMappingURL=CardActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CardActions.js","sourceRoot":"","sources":["../../../src/components/CardActions.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAoB,MAAM,eAAe,CAAA;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAItD,MAAM,CAAC,MAAM,iBAAiB,GAAmD,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAClH,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACjE,OAAO,CACL,MAAC,WAAW,OAAK,KAAK,aACpB,KAAC,QAAQ,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,yBAAqB,EAChE,QAAQ,IACG,CACf,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { CardContentProps } from '@mui/material';
3
+ import { ModuleRenderProps } from '../ModuleRenderProps';
4
+ export declare const ModuleCardContent: React.FC<ModuleRenderProps & CardContentProps>;
5
+ //# sourceMappingURL=CardContent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CardContent.d.ts","sourceRoot":"","sources":["../../../src/components/CardContent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAe,gBAAgB,EAAc,MAAM,eAAe,CAAA;AAOzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAExD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,GAAG,gBAAgB,CAyB5E,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { CardContent, Typography } from '@mui/material';
3
+ import { useAsyncEffect } from '@xylabs/react-shared';
4
+ import { EthAddress } from '@xylabs/sdk-js';
5
+ import { EthAccountBox } from '@xylabs/sdk-react';
6
+ import { XyoModuleWrapper } from '@xyo-network/module';
7
+ import { useState } from 'react';
8
+ export const ModuleCardContent = ({ children, module, ...props }) => {
9
+ const [config, setConfig] = useState();
10
+ const account = module?.address ? EthAddress.fromString(module?.address) : undefined;
11
+ useAsyncEffect(
12
+ // eslint-disable-next-line react-hooks/exhaustive-deps
13
+ async (mounted) => {
14
+ const wrapper = module ? new XyoModuleWrapper(module) : undefined;
15
+ const payloads = await wrapper?.discover();
16
+ console.log(`Payloads: ${JSON.stringify(payloads, null, 2)}`);
17
+ if (mounted()) {
18
+ setConfig(payloads?.[0]);
19
+ }
20
+ }, [module]);
21
+ return (_jsxs(CardContent, { ...props, children: [_jsx(EthAccountBox, { address: account }), children, _jsx(Typography, { variant: "subtitle2", children: config?.schema })] }));
22
+ };
23
+ //# sourceMappingURL=CardContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CardContent.js","sourceRoot":"","sources":["../../../src/components/CardContent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAoB,UAAU,EAAE,MAAM,eAAe,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAmB,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAIhC,MAAM,CAAC,MAAM,iBAAiB,GAAmD,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAClH,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAmB,CAAA;IAEvD,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAEpF,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACjE,MAAM,QAAQ,GAAG,MAAM,OAAO,EAAE,QAAQ,EAAE,CAAA;QAC1C,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;QAC7D,IAAI,OAAO,EAAE,EAAE;YACb,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;SACzB;IACH,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAA;IAED,OAAO,CACL,MAAC,WAAW,OAAK,KAAK,aACpB,KAAC,aAAa,IAAC,OAAO,EAAE,OAAO,GAAI,EAClC,QAAQ,EACT,KAAC,UAAU,IAAC,OAAO,EAAC,WAAW,YAAE,MAAM,EAAE,MAAM,GAAc,IACjD,CACf,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { CardHeaderProps } from '@mui/material';
3
+ import { ModuleRenderProps } from '../ModuleRenderProps';
4
+ export declare const ModuleCardHeader: React.FC<ModuleRenderProps & CardHeaderProps>;
5
+ //# sourceMappingURL=CardHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CardHeader.d.ts","sourceRoot":"","sources":["../../../src/components/CardHeader.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAc,eAAe,EAAE,MAAM,eAAe,CAAA;AAI3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAExD,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,GAAG,eAAe,CAU1E,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { CardHeader } from '@mui/material';
3
+ import { Identicon } from '@xylabs/react-identicon';
4
+ import { XyoModuleWrapper } from '@xyo-network/module';
5
+ export const ModuleCardHeader = ({ subheader, avatar, title, module, ...props }) => {
6
+ const wrapper = module ? new XyoModuleWrapper(module) : undefined;
7
+ return (_jsx(CardHeader, { title: title ?? 'Module', subheader: subheader ?? wrapper?.address, avatar: avatar ?? _jsx(Identicon, { size: 24, value: wrapper?.address }), ...props }));
8
+ };
9
+ //# sourceMappingURL=CardHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CardHeader.js","sourceRoot":"","sources":["../../../src/components/CardHeader.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAItD,MAAM,CAAC,MAAM,gBAAgB,GAAkD,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAChI,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACjE,OAAO,CACL,KAAC,UAAU,IACT,KAAK,EAAE,KAAK,IAAI,QAAQ,EACxB,SAAS,EAAE,SAAS,IAAI,OAAO,EAAE,OAAO,EACxC,MAAM,EAAE,MAAM,IAAI,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAI,KAC9D,KAAK,GACT,CACH,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { FlexBoxProps } from '@xylabs/react-flexbox';
3
+ import { ModuleRenderProps } from '../ModuleRenderProps';
4
+ export declare const ModuleDetailsBox: React.FC<ModuleRenderProps & FlexBoxProps>;
5
+ //# sourceMappingURL=DetailsBox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DetailsBox.d.ts","sourceRoot":"","sources":["../../../src/components/DetailsBox.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAW,MAAM,uBAAuB,CAAA;AAK7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAExD,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,GAAG,YAAY,CAOvE,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { FlexCol } from '@xylabs/react-flexbox';
3
+ import { EthAddress } from '@xylabs/sdk-js';
4
+ import { EthAccountBox } from '@xylabs/sdk-react';
5
+ import { XyoModuleWrapper } from '@xyo-network/module';
6
+ export const ModuleDetailsBox = ({ module, ...props }) => {
7
+ const wrapper = module ? new XyoModuleWrapper(module) : undefined;
8
+ return (_jsx(FlexCol, { ...props, children: _jsx(EthAccountBox, { address: EthAddress.fromString(wrapper?.address) }) }));
9
+ };
10
+ //# sourceMappingURL=DetailsBox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DetailsBox.js","sourceRoot":"","sources":["../../../src/components/DetailsBox.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAgB,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAItD,MAAM,CAAC,MAAM,gBAAgB,GAA+C,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACnG,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACjE,OAAO,CACL,KAAC,OAAO,OAAK,KAAK,YAChB,KAAC,aAAa,IAAC,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,GAAI,GAC3D,CACX,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { TableCellProps } from '@mui/material';
3
+ import { ModuleRenderProps } from '../ModuleRenderProps';
4
+ export declare const ModuleTableCell: React.FC<ModuleRenderProps & TableCellProps>;
5
+ //# sourceMappingURL=TableCell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableCell.d.ts","sourceRoot":"","sources":["../../../src/components/TableCell.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAa,cAAc,EAAE,MAAM,eAAe,CAAA;AAKzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAExD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,GAAG,cAAc,CAOxE,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { TableCell } from '@mui/material';
3
+ import { EthAddress } from '@xylabs/sdk-js';
4
+ import { EthAccountBox } from '@xylabs/sdk-react';
5
+ import { XyoModuleWrapper } from '@xyo-network/module';
6
+ export const ModuleTableCell = ({ module, ...props }) => {
7
+ const wrapper = module ? new XyoModuleWrapper(module) : undefined;
8
+ return (_jsx(TableCell, { ...props, children: _jsx(EthAccountBox, { address: EthAddress.fromString(wrapper?.address) }) }));
9
+ };
10
+ //# sourceMappingURL=TableCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableCell.js","sourceRoot":"","sources":["../../../src/components/TableCell.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAkB,MAAM,eAAe,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAItD,MAAM,CAAC,MAAM,eAAe,GAAiD,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACpG,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACjE,OAAO,CACL,KAAC,SAAS,OAAK,KAAK,YAClB,KAAC,aAAa,IAAC,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,GAAI,GACzD,CACb,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ export * from './CardActions';
2
+ export * from './CardContent';
3
+ export * from './CardHeader';
4
+ export * from './DetailsBox';
5
+ export * from './TableCell';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA"}
@@ -0,0 +1,6 @@
1
+ export * from './CardActions';
2
+ export * from './CardContent';
3
+ export * from './CardHeader';
4
+ export * from './DetailsBox';
5
+ export * from './TableCell';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './components';
2
+ export * from './ModuleRenderProps';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './components';
2
+ export * from './ModuleRenderProps';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAA"}
package/package.json ADDED
@@ -0,0 +1,83 @@
1
+ {
2
+ "name": "@xyo-network/react-module",
3
+ "author": {
4
+ "email": "support@xyo.network",
5
+ "name": "XYO Development Team",
6
+ "url": "https://xyo.network"
7
+ },
8
+ "bugs": {
9
+ "email": "support@xyo.network",
10
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/issues"
11
+ },
12
+ "dependencies": {
13
+ "@xylabs/react-flexbox": "^2.15.1",
14
+ "@xylabs/react-identicon": "^2.15.1",
15
+ "@xylabs/sdk-js": "^2.6.9",
16
+ "lodash": "^4.17.21",
17
+ "tslib": "^2.4.0"
18
+ },
19
+ "peerDependencies": {
20
+ "@mui/icons-material": "^5.10.3",
21
+ "@mui/material": "^5.10.3",
22
+ "@mui/styles": "^5.10.3",
23
+ "@xylabs/react-button": "^2.15.1",
24
+ "@xylabs/react-shared": "^2.15.1",
25
+ "@xylabs/sdk-react": "^2.15.1",
26
+ "@xyo-network/archivist": "*",
27
+ "@xyo-network/diviner": "*",
28
+ "@xyo-network/module": "*",
29
+ "@xyo-network/payload": "*",
30
+ "@xyo-network/payload-plugin": "*",
31
+ "@xyo-network/schema-payload-plugin": "*",
32
+ "@xyo-network/utils": "*",
33
+ "axios": "^1.1.3",
34
+ "pako": "^2.0.4",
35
+ "react": "^18.2.0",
36
+ "react-dom": "^18.2.0",
37
+ "react-router-dom": "^6.3.0"
38
+ },
39
+ "description": "Common React library for all XYO projects that use React",
40
+ "browser": "dist/esm/index.js",
41
+ "docs": "dist/docs.json",
42
+ "exports": {
43
+ ".": {
44
+ "node": {
45
+ "import": "./dist/esm/index.js",
46
+ "require": "./dist/cjs/index.js"
47
+ },
48
+ "browser": {
49
+ "import": "./dist/esm/index.js",
50
+ "require": "./dist/cjs/index.js"
51
+ },
52
+ "default": "./dist/esm/index.js"
53
+ },
54
+ "./dist/docs.json": {
55
+ "default": "./dist/docs.json"
56
+ },
57
+ "./package.json": "./package.json"
58
+ },
59
+ "main": "dist/cjs/index.js",
60
+ "module": "dist/esm/index.js",
61
+ "homepage": "https://xyo.network",
62
+ "keywords": [
63
+ "xyo",
64
+ "utility",
65
+ "typescript",
66
+ "react"
67
+ ],
68
+ "license": "LGPL-3.0",
69
+ "publishConfig": {
70
+ "access": "public"
71
+ },
72
+ "repository": {
73
+ "type": "git",
74
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js.git"
75
+ },
76
+ "scripts": {
77
+ "lint-pkg": "npmPkgJsonLint .",
78
+ "license": "yarn license-checker --exclude \"MIT, ISC, Apache-2.0, BSD, BSD-2-Clause, CC-BY-4.0, Unlicense, CC-BY-3.0, CC0-1.0\""
79
+ },
80
+ "sideEffects": false,
81
+ "types": "dist/esm/index.d.ts",
82
+ "version": "2.38.17"
83
+ }
@@ -0,0 +1,5 @@
1
+ import { Module } from '@xyo-network/module'
2
+
3
+ export interface ModuleRenderProps<T extends Module = Module> {
4
+ module?: T
5
+ }
@@ -0,0 +1,54 @@
1
+ import { ComponentMeta, ComponentStory } from '@storybook/react'
2
+ import { useAsyncEffect } from '@xylabs/react-shared'
3
+ import { PayloadArchivist, XyoMemoryArchivist, XyoMemoryArchivistConfigSchema } from '@xyo-network/archivist'
4
+ import { useState } from 'react'
5
+
6
+ import { ArchivistCard } from './ArchivistCard'
7
+
8
+ const StorybookEntry = {
9
+ argTypes: {
10
+ authState: {
11
+ jwtToken: 'badToken',
12
+ loggedInAccount: 'none@none.com',
13
+ },
14
+ },
15
+ component: ArchivistCard,
16
+ parameters: {
17
+ docs: {
18
+ page: null,
19
+ },
20
+ },
21
+ title: 'module/ArchivistCard',
22
+ } as ComponentMeta<typeof ArchivistCard>
23
+
24
+ const Template: ComponentStory<typeof ArchivistCard> = () => {
25
+ const [module, setModule] = useState<PayloadArchivist>()
26
+
27
+ useAsyncEffect(
28
+ // eslint-disable-next-line react-hooks/exhaustive-deps
29
+ async (mounted) => {
30
+ if (!module) {
31
+ const newParentModule = await XyoMemoryArchivist.create()
32
+ const newModule = await XyoMemoryArchivist.create({
33
+ config: {
34
+ parents: { commit: [newParentModule.address], read: [newParentModule.address], write: [newParentModule.address] },
35
+ schema: XyoMemoryArchivistConfigSchema,
36
+ },
37
+ })
38
+ if (mounted()) {
39
+ setModule(newModule)
40
+ }
41
+ }
42
+ },
43
+ [module],
44
+ )
45
+
46
+ return <ArchivistCard module={module} />
47
+ }
48
+
49
+ const SingleModule = Template.bind({})
50
+
51
+ export { SingleModule }
52
+
53
+ // eslint-disable-next-line import/no-default-export
54
+ export default StorybookEntry
@@ -0,0 +1,17 @@
1
+ import { Card, CardProps } from '@mui/material'
2
+ import { PayloadArchivist } from '@xyo-network/archivist'
3
+
4
+ import { ModuleRenderProps } from '../ModuleRenderProps'
5
+ import { ArchivistCardHeader } from './ArchivistCardHeader'
6
+ import { ArchivistCardContent } from './ArchivistContent'
7
+ import { ModuleCardActions } from './CardActions'
8
+
9
+ export const ArchivistCard: React.FC<CardProps & ModuleRenderProps<PayloadArchivist>> = ({ module, ...props }) => {
10
+ return (
11
+ <Card {...props}>
12
+ <ArchivistCardHeader module={module} />
13
+ <ArchivistCardContent module={module} />
14
+ <ModuleCardActions module={module} />
15
+ </Card>
16
+ )
17
+ }
@@ -0,0 +1,9 @@
1
+ import { CardHeaderProps } from '@mui/material'
2
+ import { PayloadArchivist } from '@xyo-network/archivist'
3
+
4
+ import { ModuleRenderProps } from '../ModuleRenderProps'
5
+ import { ModuleCardHeader } from './CardHeader'
6
+
7
+ export const ArchivistCardHeader: React.FC<ModuleRenderProps<PayloadArchivist> & CardHeaderProps> = ({ title, module, ...props }) => {
8
+ return <ModuleCardHeader module={module} title={title ?? 'Archivist'} {...props} />
9
+ }
@@ -0,0 +1,37 @@
1
+ import { CardContentProps, Typography } from '@mui/material'
2
+ import { useAsyncEffect } from '@xylabs/react-shared'
3
+ import { EthAddress } from '@xylabs/sdk-js'
4
+ import { EthAccountBox } from '@xylabs/sdk-react'
5
+ import { PayloadArchivist, XyoArchivistConfig } from '@xyo-network/archivist'
6
+ import { XyoModuleWrapper } from '@xyo-network/module'
7
+ import { useState } from 'react'
8
+
9
+ import { ModuleRenderProps } from '../ModuleRenderProps'
10
+ import { ModuleCardContent } from './CardContent'
11
+
12
+ export const ArchivistCardContent: React.FC<ModuleRenderProps<PayloadArchivist> & CardContentProps> = ({ children, module, ...props }) => {
13
+ const [config, setConfig] = useState<XyoArchivistConfig>()
14
+
15
+ useAsyncEffect(
16
+ // eslint-disable-next-line react-hooks/exhaustive-deps
17
+ async (mounted) => {
18
+ const wrapper = module ? new XyoModuleWrapper(module) : undefined
19
+ const payloads = await wrapper?.discover()
20
+ console.log(`Payloads: ${JSON.stringify(payloads, null, 2)}`)
21
+ if (mounted()) {
22
+ setConfig(payloads?.[0])
23
+ }
24
+ },
25
+ [module],
26
+ )
27
+
28
+ return (
29
+ <ModuleCardContent module={module} {...props}>
30
+ <Typography>Parents</Typography>
31
+ {config?.parents?.commit?.map((address) => {
32
+ return <EthAccountBox key={address} address={EthAddress.fromString(address)} />
33
+ })}
34
+ {children}
35
+ </ModuleCardContent>
36
+ )
37
+ }
@@ -0,0 +1,49 @@
1
+ import { ComponentMeta, ComponentStory } from '@storybook/react'
2
+ import { useAsyncEffect } from '@xylabs/react-shared'
3
+ import { XyoMemoryArchivist } from '@xyo-network/archivist'
4
+ import { Module } from '@xyo-network/module'
5
+ import { useState } from 'react'
6
+
7
+ import { ModuleCard } from './Card'
8
+
9
+ const StorybookEntry = {
10
+ argTypes: {
11
+ authState: {
12
+ jwtToken: 'badToken',
13
+ loggedInAccount: 'none@none.com',
14
+ },
15
+ },
16
+ component: ModuleCard,
17
+ parameters: {
18
+ docs: {
19
+ page: null,
20
+ },
21
+ },
22
+ title: 'module/ModuleCard',
23
+ } as ComponentMeta<typeof ModuleCard>
24
+
25
+ const Template: ComponentStory<typeof ModuleCard> = () => {
26
+ const [module, setModule] = useState<Module>()
27
+
28
+ useAsyncEffect(
29
+ // eslint-disable-next-line react-hooks/exhaustive-deps
30
+ async (mounted) => {
31
+ if (!module) {
32
+ const newModule = await XyoMemoryArchivist.create()
33
+ if (mounted()) {
34
+ setModule(newModule)
35
+ }
36
+ }
37
+ },
38
+ [module],
39
+ )
40
+
41
+ return <ModuleCard module={module} />
42
+ }
43
+
44
+ const SingleModule = Template.bind({})
45
+
46
+ export { SingleModule }
47
+
48
+ // eslint-disable-next-line import/no-default-export
49
+ export default StorybookEntry
@@ -0,0 +1,16 @@
1
+ import { Card, CardProps } from '@mui/material'
2
+
3
+ import { ModuleRenderProps } from '../ModuleRenderProps'
4
+ import { ModuleCardActions } from './CardActions'
5
+ import { ModuleCardContent } from './CardContent'
6
+ import { ModuleCardHeader } from './CardHeader'
7
+
8
+ export const ModuleCard: React.FC<CardProps & ModuleRenderProps> = ({ module, ...props }) => {
9
+ return (
10
+ <Card {...props}>
11
+ <ModuleCardHeader module={module} />
12
+ <ModuleCardContent module={module} />
13
+ <ModuleCardActions module={module} />
14
+ </Card>
15
+ )
16
+ }