@xyo-network/react-payload 2.27.33 → 2.28.0

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 (81) hide show
  1. package/dist/cjs/components/index.d.ts +0 -1
  2. package/dist/cjs/components/index.d.ts.map +1 -1
  3. package/dist/cjs/components/index.js +0 -1
  4. package/dist/cjs/components/index.js.map +1 -1
  5. package/dist/cjs/contexts/PayloadDiviner/Provider.d.ts.map +1 -1
  6. package/dist/cjs/contexts/PayloadDiviner/Provider.js +5 -1
  7. package/dist/cjs/contexts/PayloadDiviner/Provider.js.map +1 -1
  8. package/dist/cjs/contexts/PayloadDiviner/use.d.ts.map +1 -1
  9. package/dist/cjs/contexts/PayloadDiviner/use.js +2 -5
  10. package/dist/cjs/contexts/PayloadDiviner/use.js.map +1 -1
  11. package/dist/cjs/hooks/index.d.ts +0 -1
  12. package/dist/cjs/hooks/index.d.ts.map +1 -1
  13. package/dist/cjs/hooks/index.js +0 -1
  14. package/dist/cjs/hooks/index.js.map +1 -1
  15. package/dist/docs.json +340 -1262
  16. package/dist/esm/components/index.d.ts +0 -1
  17. package/dist/esm/components/index.d.ts.map +1 -1
  18. package/dist/esm/components/index.js +0 -1
  19. package/dist/esm/components/index.js.map +1 -1
  20. package/dist/esm/contexts/PayloadDiviner/Provider.d.ts.map +1 -1
  21. package/dist/esm/contexts/PayloadDiviner/Provider.js +6 -1
  22. package/dist/esm/contexts/PayloadDiviner/Provider.js.map +1 -1
  23. package/dist/esm/contexts/PayloadDiviner/use.d.ts.map +1 -1
  24. package/dist/esm/contexts/PayloadDiviner/use.js +3 -4
  25. package/dist/esm/contexts/PayloadDiviner/use.js.map +1 -1
  26. package/dist/esm/hooks/index.d.ts +0 -1
  27. package/dist/esm/hooks/index.d.ts.map +1 -1
  28. package/dist/esm/hooks/index.js +0 -1
  29. package/dist/esm/hooks/index.js.map +1 -1
  30. package/package.json +17 -20
  31. package/src/components/index.ts +0 -1
  32. package/src/contexts/PayloadDiviner/Provider.tsx +8 -1
  33. package/src/contexts/PayloadDiviner/use.ts +3 -9
  34. package/src/hooks/index.ts +0 -1
  35. package/dist/cjs/components/Table/PayloadTableColumnConfig.d.ts +0 -11
  36. package/dist/cjs/components/Table/PayloadTableColumnConfig.d.ts.map +0 -1
  37. package/dist/cjs/components/Table/PayloadTableColumnConfig.js +0 -18
  38. package/dist/cjs/components/Table/PayloadTableColumnConfig.js.map +0 -1
  39. package/dist/cjs/components/Table/Table.d.ts +0 -13
  40. package/dist/cjs/components/Table/Table.d.ts.map +0 -1
  41. package/dist/cjs/components/Table/Table.js +0 -28
  42. package/dist/cjs/components/Table/Table.js.map +0 -1
  43. package/dist/cjs/components/Table/TableRow.d.ts +0 -13
  44. package/dist/cjs/components/Table/TableRow.d.ts.map +0 -1
  45. package/dist/cjs/components/Table/TableRow.js +0 -33
  46. package/dist/cjs/components/Table/TableRow.js.map +0 -1
  47. package/dist/cjs/components/Table/index.d.ts +0 -4
  48. package/dist/cjs/components/Table/index.d.ts.map +0 -1
  49. package/dist/cjs/components/Table/index.js +0 -7
  50. package/dist/cjs/components/Table/index.js.map +0 -1
  51. package/dist/cjs/hooks/useGetSchema.d.ts +0 -15
  52. package/dist/cjs/hooks/useGetSchema.d.ts.map +0 -1
  53. package/dist/cjs/hooks/useGetSchema.js +0 -51
  54. package/dist/cjs/hooks/useGetSchema.js.map +0 -1
  55. package/dist/esm/components/Table/PayloadTableColumnConfig.d.ts +0 -11
  56. package/dist/esm/components/Table/PayloadTableColumnConfig.d.ts.map +0 -1
  57. package/dist/esm/components/Table/PayloadTableColumnConfig.js +0 -14
  58. package/dist/esm/components/Table/PayloadTableColumnConfig.js.map +0 -1
  59. package/dist/esm/components/Table/Table.d.ts +0 -13
  60. package/dist/esm/components/Table/Table.d.ts.map +0 -1
  61. package/dist/esm/components/Table/Table.js +0 -21
  62. package/dist/esm/components/Table/Table.js.map +0 -1
  63. package/dist/esm/components/Table/TableRow.d.ts +0 -13
  64. package/dist/esm/components/Table/TableRow.d.ts.map +0 -1
  65. package/dist/esm/components/Table/TableRow.js +0 -26
  66. package/dist/esm/components/Table/TableRow.js.map +0 -1
  67. package/dist/esm/components/Table/index.d.ts +0 -4
  68. package/dist/esm/components/Table/index.d.ts.map +0 -1
  69. package/dist/esm/components/Table/index.js +0 -4
  70. package/dist/esm/components/Table/index.js.map +0 -1
  71. package/dist/esm/hooks/useGetSchema.d.ts +0 -15
  72. package/dist/esm/hooks/useGetSchema.d.ts.map +0 -1
  73. package/dist/esm/hooks/useGetSchema.js +0 -47
  74. package/dist/esm/hooks/useGetSchema.js.map +0 -1
  75. package/src/components/Table/PayloadTableColumnConfig.ts +0 -25
  76. package/src/components/Table/Table.stories.tsx +0 -43
  77. package/src/components/Table/Table.tsx +0 -73
  78. package/src/components/Table/TableRow.tsx +0 -80
  79. package/src/components/Table/index.ts +0 -3
  80. package/src/hooks/useGetSchema.stories.tsx +0 -76
  81. package/src/hooks/useGetSchema.tsx +0 -54
@@ -1,13 +0,0 @@
1
- /// <reference types="react" />
2
- import { TableRowProps } from '@mui/material';
3
- import { XyoPayload } from '@xyo-network/payload';
4
- import { PayloadTableColumnConfig } from './PayloadTableColumnConfig';
5
- export interface PayloadTableRowProps extends TableRowProps {
6
- payload?: XyoPayload;
7
- archive?: string;
8
- exploreDomain?: string;
9
- columns?: PayloadTableColumnConfig;
10
- network?: string;
11
- }
12
- export declare const PayloadTableRow: React.FC<PayloadTableRowProps>;
13
- //# sourceMappingURL=TableRow.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableRow.d.ts","sourceRoot":"","sources":["../../../../src/components/Table/TableRow.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAuC,aAAa,EAAc,MAAM,eAAe,CAAA;AAE9F,OAAO,EAAE,UAAU,EAA0C,MAAM,sBAAsB,CAAA;AAKzF,OAAO,EAAE,wBAAwB,EAA4D,MAAM,4BAA4B,CAAA;AAE/H,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACzD,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,wBAAwB,CAAA;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA8D1D,CAAA"}
@@ -1,26 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { TableCell, TableRow, Typography } from '@mui/material';
3
- import { useBreakpoint } from '@xylabs/react-shared';
4
- import { XyoPayloadValidator, XyoPayloadWrapper } from '@xyo-network/payload';
5
- import { useNetwork } from '@xyo-network/react-network';
6
- import { HashTableCell } from '@xyo-network/react-shared';
7
- import { MdClear, MdDone } from 'react-icons/md';
8
- import { payloadTableColumnConfigDefaults } from './PayloadTableColumnConfig';
9
- export const PayloadTableRow = ({ exploreDomain, network: networkProp, payload, archive, columns = payloadTableColumnConfigDefaults(), ...props }) => {
10
- const breakPoint = useBreakpoint();
11
- const wrapper = payload ? new XyoPayloadWrapper(payload) : undefined;
12
- const { network } = useNetwork();
13
- const hash = (props) => (_jsx(HashTableCell, { archive: archive, width: "100%", value: wrapper?.hash, dataType: "payload", exploreDomain: exploreDomain, network: networkProp ?? network?.slug, ...props }, "hash"));
14
- const schema = (props) => (_jsx(TableCell, { align: "center", ...props, children: _jsx(Typography, { fontFamily: "monospace", variant: "body2", noWrap: true, children: payload?.schema }) }, "payloads"));
15
- const isValid = wrapper ? new XyoPayloadValidator(wrapper.body).validate().length === 0 : undefined;
16
- const valid = (props) => (_jsx(TableCell, { align: "center", ...props, children: _jsx(Typography, { fontFamily: "monospace", variant: "body2", noWrap: true, children: isValid === undefined ? (_jsx(MdDone, { fontSize: 18, color: "yellow" })) : isValid ? (_jsx(MdDone, { fontSize: 18, color: "green" })) : (_jsx(MdClear, { color: "red", fontSize: 18 })) }) }, "valid"));
17
- const tableCells = {
18
- hash,
19
- schema,
20
- valid,
21
- };
22
- return breakPoint ? (_jsx(TableRow, { style: { maxWidth: '100vw' }, ...props, children: columns[breakPoint]?.map((column) => {
23
- return tableCells[column]({});
24
- }) })) : null;
25
- };
26
- //# sourceMappingURL=TableRow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableRow.js","sourceRoot":"","sources":["../../../../src/components/Table/TableRow.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export * from './PayloadTableColumnConfig';
2
- export * from './Table';
3
- export * from './TableRow';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Table/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA;AAC1C,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA"}
@@ -1,4 +0,0 @@
1
- export * from './PayloadTableColumnConfig';
2
- export * from './Table';
3
- export * from './TableRow';
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Table/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA;AAC1C,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA"}
@@ -1,15 +0,0 @@
1
- import { XyoApiError } from '@xyo-network/api';
2
- import { XyoSchemaPayload } from '@xyo-network/schema-payload-plugin';
3
- /**
4
- * Gets a Huri and schema payload from a schema string
5
- */
6
- declare const useGetSchemaPayload: (schema?: string) => {
7
- apiError: XyoApiError<any, any> | undefined;
8
- notFound: boolean;
9
- schemaHuri: import("@xyo-network/payload").Huri<import("@xyo-network/payload").XyoPayload<{
10
- schema: string;
11
- }>> | undefined;
12
- schemaPayload: XyoSchemaPayload | null | undefined;
13
- };
14
- export { useGetSchemaPayload };
15
- //# sourceMappingURL=useGetSchema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useGetSchema.d.ts","sourceRoot":"","sources":["../../../src/hooks/useGetSchema.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAIrE;;GAEG;AACH,QAAA,MAAM,mBAAmB,YAAa,MAAM;;;;;;;CAyC3C,CAAA;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAA"}
@@ -1,47 +0,0 @@
1
- import { useAsyncEffect } from '@xylabs/react-shared';
2
- import { XyoPayloadBuilder } from '@xyo-network/payload';
3
- import { XyoSchemaCache } from '@xyo-network/utils';
4
- import { useState } from 'react';
5
- /**
6
- * Gets a Huri and schema payload from a schema string
7
- */
8
- const useGetSchemaPayload = (schema) => {
9
- const [notFound, setNotFound] = useState(false);
10
- const [apiError, setApiError] = useState();
11
- const [schemaCacheEntry, setSchemaCacheEntry] = useState();
12
- const [schemaLocal, setSchemaLocal] = useState();
13
- useAsyncEffect(
14
- // eslint-disable-next-line react-hooks/exhaustive-deps
15
- async (mounted) => {
16
- const firstRequest = !notFound && !schemaCacheEntry && !apiError;
17
- const schemaChanged = schema !== schemaLocal;
18
- if ((schema && firstRequest) || (schema && schemaChanged)) {
19
- try {
20
- const schemaCacheEntry = await XyoSchemaCache.instance.get(schema);
21
- if (mounted()) {
22
- setSchemaCacheEntry(schemaCacheEntry);
23
- setNotFound(schemaCacheEntry === null || schemaCacheEntry === undefined);
24
- }
25
- }
26
- catch (e) {
27
- console.error(e);
28
- if (mounted()) {
29
- setApiError(e);
30
- }
31
- }
32
- }
33
- if (schemaChanged) {
34
- setSchemaLocal(schema);
35
- }
36
- }, [apiError, notFound, schema, schemaLocal, schemaCacheEntry]);
37
- return {
38
- apiError,
39
- notFound,
40
- schemaHuri: schemaCacheEntry?.huri,
41
- schemaPayload: schemaCacheEntry
42
- ? new XyoPayloadBuilder(schemaCacheEntry?.payload).fields(schemaCacheEntry.payload).build()
43
- : schemaCacheEntry,
44
- };
45
- };
46
- export { useGetSchemaPayload };
47
- //# sourceMappingURL=useGetSchema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useGetSchema.js","sourceRoot":"","sources":["../../../src/hooks/useGetSchema.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAExD,OAAO,EAAE,cAAc,EAAuB,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC;;GAEG;AACH,MAAM,mBAAmB,GAAG,CAAC,MAAe,EAAE,EAAE;IAC9C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC/C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAe,CAAA;IACvD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,EAA0C,CAAA;IAClG,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,EAAU,CAAA;IAExD,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,YAAY,GAAG,CAAC,QAAQ,IAAI,CAAC,gBAAgB,IAAI,CAAC,QAAQ,CAAA;QAChE,MAAM,aAAa,GAAG,MAAM,KAAK,WAAW,CAAA;QAE5C,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC,EAAE;YACzD,IAAI;gBACF,MAAM,gBAAgB,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;gBAClE,IAAI,OAAO,EAAE,EAAE;oBACb,mBAAmB,CAAC,gBAAgB,CAAC,CAAA;oBACrC,WAAW,CAAC,gBAAgB,KAAK,IAAI,IAAI,gBAAgB,KAAK,SAAS,CAAC,CAAA;iBACzE;aACF;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAChB,IAAI,OAAO,EAAE,EAAE;oBACb,WAAW,CAAC,CAAgB,CAAC,CAAA;iBAC9B;aACF;SACF;QACD,IAAI,aAAa,EAAE;YACjB,cAAc,CAAC,MAAM,CAAC,CAAA;SACvB;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAC5D,CAAA;IAED,OAAO;QACL,QAAQ;QACR,QAAQ;QACR,UAAU,EAAE,gBAAgB,EAAE,IAAI;QAClC,aAAa,EAAE,gBAAgB;YAC7B,CAAC,CAAC,IAAI,iBAAiB,CAAmB,gBAAgB,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE;YAC7G,CAAC,CAAC,gBAAgB;KACrB,CAAA;AACH,CAAC,CAAA;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAA"}
@@ -1,25 +0,0 @@
1
- export type PayloadTableColumnSlug = 'hash' | 'schema' | 'valid'
2
-
3
- export interface PayloadTableColumnConfig {
4
- xs?: PayloadTableColumnSlug[]
5
- sm?: PayloadTableColumnSlug[]
6
- md?: PayloadTableColumnSlug[]
7
- lg?: PayloadTableColumnSlug[]
8
- xl?: PayloadTableColumnSlug[]
9
- }
10
-
11
- export const payloadColumnNames: Record<PayloadTableColumnSlug, string> = {
12
- hash: 'Hash',
13
- schema: 'Schema',
14
-
15
- valid: 'Valid',
16
- }
17
-
18
- export const payloadTableColumnConfigDefaults = (): PayloadTableColumnConfig => {
19
- const xs: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']
20
- const sm: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']
21
- const md: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']
22
- const lg: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']
23
- const xl: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']
24
- return { lg, md, sm, xl, xs }
25
- }
@@ -1,43 +0,0 @@
1
- import { ComponentMeta, ComponentStory } from '@storybook/react'
2
- import { samplePayload, useAppThemeDecorator } from '@xyo-network/react-storybook'
3
- import { BrowserRouter } from 'react-router-dom'
4
-
5
- import { PayloadTable } from './Table'
6
-
7
- const StorybookEntry = {
8
- argTypes: {},
9
- component: PayloadTable,
10
- parameters: {
11
- docs: {
12
- page: null,
13
- },
14
- },
15
- title: 'payload/Table',
16
- } as ComponentMeta<typeof PayloadTable>
17
-
18
- const Template: ComponentStory<typeof PayloadTable> = (args) => (
19
- <BrowserRouter>
20
- <PayloadTable {...args}></PayloadTable>
21
- </BrowserRouter>
22
- )
23
-
24
- const Default = Template.bind({})
25
- Default.args = {}
26
- Default.decorators = [useAppThemeDecorator]
27
-
28
- const WithData = Template.bind({})
29
- WithData.args = { payloads: [samplePayload, samplePayload] }
30
- WithData.decorators = [useAppThemeDecorator]
31
-
32
- const WithError = Template.bind({})
33
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
34
- const { _hash, ...badPayload } = samplePayload
35
-
36
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
37
- //@ts-ignore
38
- WithError.args = { payloads: [samplePayload, badPayload] }
39
-
40
- export { Default, WithData, WithError }
41
-
42
- // eslint-disable-next-line import/no-default-export
43
- export default StorybookEntry
@@ -1,73 +0,0 @@
1
- import { Alert, Table, TableBody, TableCell, TableHead, TableProps, TableRow, Typography } from '@mui/material'
2
- import { useBreakpoint } from '@xylabs/react-shared'
3
- import { XyoPayload, XyoPayloadWrapper } from '@xyo-network/payload'
4
- import { XyoApiThrownErrorBoundary } from '@xyo-network/react-auth-service'
5
-
6
- import { payloadColumnNames, PayloadTableColumnConfig, payloadTableColumnConfigDefaults } from './PayloadTableColumnConfig'
7
- import { PayloadTableRow } from './TableRow'
8
-
9
- export interface PayloadTableProps extends TableProps {
10
- exploreDomain?: string
11
- archive?: string
12
- onRowClick?: (value: XyoPayload) => void
13
- payloads?: XyoPayload[] | null
14
- columns?: PayloadTableColumnConfig
15
- }
16
-
17
- export const PayloadTable: React.FC<PayloadTableProps> = ({
18
- exploreDomain,
19
- archive,
20
- onRowClick,
21
- payloads,
22
- children,
23
- columns = payloadTableColumnConfigDefaults(),
24
- ...props
25
- }) => {
26
- const breakPoint = useBreakpoint()
27
- return breakPoint ? (
28
- <Table {...props}>
29
- <TableHead>
30
- <TableRow>
31
- {columns[breakPoint]?.map((column, index) => {
32
- return (
33
- <TableCell key={index} width={index === 0 ? '100%' : undefined} align={index === 0 ? 'left' : 'center'}>
34
- <Typography variant="caption" noWrap>
35
- <strong>{payloadColumnNames[column]}</strong>
36
- </Typography>
37
- </TableCell>
38
- )
39
- })}
40
- </TableRow>
41
- </TableHead>
42
- <TableBody>
43
- {payloads?.map((payload, index) => {
44
- const wrapper = new XyoPayloadWrapper(payload)
45
- return (
46
- <XyoApiThrownErrorBoundary
47
- key={`${wrapper.hash}-${index}`}
48
- errorComponent={(e) => (
49
- <Alert severity="error">
50
- Error Loading Payload: <Typography fontWeight="bold">{e.message}</Typography>
51
- </Alert>
52
- )}
53
- >
54
- <PayloadTableRow
55
- archive={archive}
56
- onClick={
57
- onRowClick
58
- ? () => {
59
- onRowClick(payload)
60
- }
61
- : undefined
62
- }
63
- exploreDomain={exploreDomain}
64
- payload={payload}
65
- />
66
- </XyoApiThrownErrorBoundary>
67
- )
68
- })}
69
- {children}
70
- </TableBody>
71
- </Table>
72
- ) : null
73
- }
@@ -1,80 +0,0 @@
1
- import { TableCell, TableCellProps, TableRow, TableRowProps, Typography } from '@mui/material'
2
- import { useBreakpoint } from '@xylabs/react-shared'
3
- import { XyoPayload, XyoPayloadValidator, XyoPayloadWrapper } from '@xyo-network/payload'
4
- import { useNetwork } from '@xyo-network/react-network'
5
- import { HashTableCell } from '@xyo-network/react-shared'
6
- import { MdClear, MdDone } from 'react-icons/md'
7
-
8
- import { PayloadTableColumnConfig, payloadTableColumnConfigDefaults, PayloadTableColumnSlug } from './PayloadTableColumnConfig'
9
-
10
- export interface PayloadTableRowProps extends TableRowProps {
11
- payload?: XyoPayload
12
- archive?: string
13
- exploreDomain?: string
14
- columns?: PayloadTableColumnConfig
15
- network?: string
16
- }
17
-
18
- export const PayloadTableRow: React.FC<PayloadTableRowProps> = ({
19
- exploreDomain,
20
- network: networkProp,
21
- payload,
22
- archive,
23
- columns = payloadTableColumnConfigDefaults(),
24
- ...props
25
- }) => {
26
- const breakPoint = useBreakpoint()
27
- const wrapper = payload ? new XyoPayloadWrapper(payload) : undefined
28
- const { network } = useNetwork()
29
-
30
- const hash: React.FC<TableCellProps> = (props) => (
31
- <HashTableCell
32
- key="hash"
33
- archive={archive}
34
- width="100%"
35
- value={wrapper?.hash}
36
- dataType="payload"
37
- exploreDomain={exploreDomain}
38
- network={networkProp ?? network?.slug}
39
- {...props}
40
- />
41
- )
42
-
43
- const schema: React.FC<TableCellProps> = (props) => (
44
- <TableCell key="payloads" align="center" {...props}>
45
- <Typography fontFamily="monospace" variant="body2" noWrap>
46
- {payload?.schema}
47
- </Typography>
48
- </TableCell>
49
- )
50
-
51
- const isValid = wrapper ? new XyoPayloadValidator(wrapper.body).validate().length === 0 : undefined
52
-
53
- const valid: React.FC<TableCellProps> = (props) => (
54
- <TableCell key="valid" align="center" {...props}>
55
- <Typography fontFamily="monospace" variant="body2" noWrap>
56
- {isValid === undefined ? (
57
- <MdDone fontSize={18} color="yellow" />
58
- ) : isValid ? (
59
- <MdDone fontSize={18} color="green" />
60
- ) : (
61
- <MdClear color="red" fontSize={18} />
62
- )}
63
- </Typography>
64
- </TableCell>
65
- )
66
-
67
- const tableCells: Record<PayloadTableColumnSlug, React.FC<TableCellProps>> = {
68
- hash,
69
- schema,
70
- valid,
71
- }
72
-
73
- return breakPoint ? (
74
- <TableRow style={{ maxWidth: '100vw' }} {...props}>
75
- {columns[breakPoint]?.map((column) => {
76
- return tableCells[column]({})
77
- })}
78
- </TableRow>
79
- ) : null
80
- }
@@ -1,3 +0,0 @@
1
- export * from './PayloadTableColumnConfig'
2
- export * from './Table'
3
- export * from './TableRow'
@@ -1,76 +0,0 @@
1
- import { FormControl, TextField, Typography } from '@mui/material'
2
- import { ComponentStory, Meta } from '@storybook/react'
3
- import { FlexCol, FlexRow } from '@xylabs/react-flexbox'
4
- import { XyoSchemaCache } from '@xyo-network/utils'
5
- import { lazy, Suspense, useEffect, useState } from 'react'
6
-
7
- import { useGetSchemaPayload } from './useGetSchema'
8
-
9
- const JsonView = lazy(() => import(/* webpackChunkName: "jsonView" */ 'react-json-view'))
10
-
11
- XyoSchemaCache.instance.proxy = 'https://beta.api.archivist.xyo.network/domain'
12
-
13
- const UseGetSchemaComponent: React.FC<{ schema: string }> = ({ schema }) => {
14
- const exampleSchemas = ['network.xyo.domain', 'network.xyo.payload', 'network.xyo.schema']
15
- const [schemaFieldValue, setSchemaFieldValue] = useState('')
16
- const { schemaPayload } = useGetSchemaPayload(schemaFieldValue)
17
-
18
- useEffect(() => {
19
- if (schema) {
20
- setSchemaFieldValue(schema)
21
- }
22
- }, [schema])
23
-
24
- return (
25
- <>
26
- <Typography variant="body1" fontWeight="bold" mb={2}>
27
- Example schemas to test:
28
- {exampleSchemas.map((schema, index) => (
29
- <Typography
30
- component="span"
31
- mx={1}
32
- key={index}
33
- onClick={() => setSchemaFieldValue(schema)}
34
- sx={{ cursor: 'pointer', textDecoration: 'underline' }}
35
- >
36
- {schema}
37
- </Typography>
38
- ))}
39
- </Typography>
40
- <FormControl>
41
- <TextField value={schemaFieldValue} label="Schema Name" onChange={(e) => setSchemaFieldValue(e.target.value)} />
42
- </FormControl>
43
- <FlexRow my={3} justifyContent="start">
44
- <Suspense fallback={<FlexCol busy />}>
45
- <JsonView src={schemaPayload || {}} />
46
- </Suspense>
47
- </FlexRow>
48
- </>
49
- )
50
- }
51
-
52
- const StorybookEntry: Meta = {
53
- argTypes: {},
54
- component: UseGetSchemaComponent,
55
- parameters: {
56
- docs: {
57
- page: null,
58
- },
59
- },
60
- title: 'payload/useGetSchema',
61
- }
62
-
63
- const Template: ComponentStory<typeof UseGetSchemaComponent> = ({ schema }) => {
64
- return <UseGetSchemaComponent schema={schema} />
65
- }
66
-
67
- const Default = Template.bind({})
68
- Default.args = { schema: 'network.xyo.schema' }
69
-
70
- const Domain = Template.bind({})
71
- Domain.args = { schema: 'network.xyo.domain' }
72
-
73
- export { Default, Domain }
74
-
75
- // eslint-disable-next-line import/no-default-export
76
- export default StorybookEntry
@@ -1,54 +0,0 @@
1
- import { useAsyncEffect } from '@xylabs/react-shared'
2
- import { XyoApiError } from '@xyo-network/api'
3
- import { XyoPayloadBuilder } from '@xyo-network/payload'
4
- import { XyoSchemaPayload } from '@xyo-network/schema-payload-plugin'
5
- import { XyoSchemaCache, XyoSchemaCacheEntry } from '@xyo-network/utils'
6
- import { useState } from 'react'
7
-
8
- /**
9
- * Gets a Huri and schema payload from a schema string
10
- */
11
- const useGetSchemaPayload = (schema?: string) => {
12
- const [notFound, setNotFound] = useState(false)
13
- const [apiError, setApiError] = useState<XyoApiError>()
14
- const [schemaCacheEntry, setSchemaCacheEntry] = useState<XyoSchemaCacheEntry | null | undefined>()
15
- const [schemaLocal, setSchemaLocal] = useState<string>()
16
-
17
- useAsyncEffect(
18
- // eslint-disable-next-line react-hooks/exhaustive-deps
19
- async (mounted) => {
20
- const firstRequest = !notFound && !schemaCacheEntry && !apiError
21
- const schemaChanged = schema !== schemaLocal
22
-
23
- if ((schema && firstRequest) || (schema && schemaChanged)) {
24
- try {
25
- const schemaCacheEntry = await XyoSchemaCache.instance.get(schema)
26
- if (mounted()) {
27
- setSchemaCacheEntry(schemaCacheEntry)
28
- setNotFound(schemaCacheEntry === null || schemaCacheEntry === undefined)
29
- }
30
- } catch (e) {
31
- console.error(e)
32
- if (mounted()) {
33
- setApiError(e as XyoApiError)
34
- }
35
- }
36
- }
37
- if (schemaChanged) {
38
- setSchemaLocal(schema)
39
- }
40
- },
41
- [apiError, notFound, schema, schemaLocal, schemaCacheEntry],
42
- )
43
-
44
- return {
45
- apiError,
46
- notFound,
47
- schemaHuri: schemaCacheEntry?.huri,
48
- schemaPayload: schemaCacheEntry
49
- ? new XyoPayloadBuilder<XyoSchemaPayload>(schemaCacheEntry?.payload).fields(schemaCacheEntry.payload).build()
50
- : schemaCacheEntry,
51
- }
52
- }
53
-
54
- export { useGetSchemaPayload }