@xyo-network/react-payload 2.27.33 → 2.28.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/index.d.ts +0 -1
- package/dist/cjs/components/index.d.ts.map +1 -1
- package/dist/cjs/components/index.js +0 -1
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/contexts/Payload/Provider.d.ts.map +1 -1
- package/dist/cjs/contexts/Payload/Provider.js +4 -3
- package/dist/cjs/contexts/Payload/Provider.js.map +1 -1
- package/dist/cjs/contexts/PayloadDiviner/Provider.d.ts.map +1 -1
- package/dist/cjs/contexts/PayloadDiviner/Provider.js +5 -1
- package/dist/cjs/contexts/PayloadDiviner/Provider.js.map +1 -1
- package/dist/cjs/contexts/PayloadDiviner/use.d.ts.map +1 -1
- package/dist/cjs/contexts/PayloadDiviner/use.js +2 -5
- package/dist/cjs/contexts/PayloadDiviner/use.js.map +1 -1
- package/dist/cjs/hooks/index.d.ts +0 -1
- package/dist/cjs/hooks/index.d.ts.map +1 -1
- package/dist/cjs/hooks/index.js +0 -1
- package/dist/cjs/hooks/index.js.map +1 -1
- package/dist/docs.json +339 -1261
- package/dist/esm/components/index.d.ts +0 -1
- package/dist/esm/components/index.d.ts.map +1 -1
- package/dist/esm/components/index.js +0 -1
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/contexts/Payload/Provider.d.ts.map +1 -1
- package/dist/esm/contexts/Payload/Provider.js +3 -2
- package/dist/esm/contexts/Payload/Provider.js.map +1 -1
- package/dist/esm/contexts/PayloadDiviner/Provider.d.ts.map +1 -1
- package/dist/esm/contexts/PayloadDiviner/Provider.js +6 -1
- package/dist/esm/contexts/PayloadDiviner/Provider.js.map +1 -1
- package/dist/esm/contexts/PayloadDiviner/use.d.ts.map +1 -1
- package/dist/esm/contexts/PayloadDiviner/use.js +3 -4
- package/dist/esm/contexts/PayloadDiviner/use.js.map +1 -1
- package/dist/esm/hooks/index.d.ts +0 -1
- package/dist/esm/hooks/index.d.ts.map +1 -1
- package/dist/esm/hooks/index.js +0 -1
- package/dist/esm/hooks/index.js.map +1 -1
- package/package.json +18 -20
- package/src/components/index.ts +0 -1
- package/src/contexts/Payload/Provider.tsx +3 -2
- package/src/contexts/PayloadDiviner/Provider.tsx +8 -1
- package/src/contexts/PayloadDiviner/use.ts +3 -9
- package/src/hooks/index.ts +0 -1
- package/dist/cjs/components/Table/PayloadTableColumnConfig.d.ts +0 -11
- package/dist/cjs/components/Table/PayloadTableColumnConfig.d.ts.map +0 -1
- package/dist/cjs/components/Table/PayloadTableColumnConfig.js +0 -18
- package/dist/cjs/components/Table/PayloadTableColumnConfig.js.map +0 -1
- package/dist/cjs/components/Table/Table.d.ts +0 -13
- package/dist/cjs/components/Table/Table.d.ts.map +0 -1
- package/dist/cjs/components/Table/Table.js +0 -28
- package/dist/cjs/components/Table/Table.js.map +0 -1
- package/dist/cjs/components/Table/TableRow.d.ts +0 -13
- package/dist/cjs/components/Table/TableRow.d.ts.map +0 -1
- package/dist/cjs/components/Table/TableRow.js +0 -33
- package/dist/cjs/components/Table/TableRow.js.map +0 -1
- package/dist/cjs/components/Table/index.d.ts +0 -4
- package/dist/cjs/components/Table/index.d.ts.map +0 -1
- package/dist/cjs/components/Table/index.js +0 -7
- package/dist/cjs/components/Table/index.js.map +0 -1
- package/dist/cjs/hooks/useGetSchema.d.ts +0 -15
- package/dist/cjs/hooks/useGetSchema.d.ts.map +0 -1
- package/dist/cjs/hooks/useGetSchema.js +0 -51
- package/dist/cjs/hooks/useGetSchema.js.map +0 -1
- package/dist/esm/components/Table/PayloadTableColumnConfig.d.ts +0 -11
- package/dist/esm/components/Table/PayloadTableColumnConfig.d.ts.map +0 -1
- package/dist/esm/components/Table/PayloadTableColumnConfig.js +0 -14
- package/dist/esm/components/Table/PayloadTableColumnConfig.js.map +0 -1
- package/dist/esm/components/Table/Table.d.ts +0 -13
- package/dist/esm/components/Table/Table.d.ts.map +0 -1
- package/dist/esm/components/Table/Table.js +0 -21
- package/dist/esm/components/Table/Table.js.map +0 -1
- package/dist/esm/components/Table/TableRow.d.ts +0 -13
- package/dist/esm/components/Table/TableRow.d.ts.map +0 -1
- package/dist/esm/components/Table/TableRow.js +0 -26
- package/dist/esm/components/Table/TableRow.js.map +0 -1
- package/dist/esm/components/Table/index.d.ts +0 -4
- package/dist/esm/components/Table/index.d.ts.map +0 -1
- package/dist/esm/components/Table/index.js +0 -4
- package/dist/esm/components/Table/index.js.map +0 -1
- package/dist/esm/hooks/useGetSchema.d.ts +0 -15
- package/dist/esm/hooks/useGetSchema.d.ts.map +0 -1
- package/dist/esm/hooks/useGetSchema.js +0 -47
- package/dist/esm/hooks/useGetSchema.js.map +0 -1
- package/src/components/Table/PayloadTableColumnConfig.ts +0 -25
- package/src/components/Table/Table.stories.tsx +0 -43
- package/src/components/Table/Table.tsx +0 -73
- package/src/components/Table/TableRow.tsx +0 -80
- package/src/components/Table/index.ts +0 -3
- package/src/hooks/useGetSchema.stories.tsx +0 -76
- package/src/hooks/useGetSchema.tsx +0 -54
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { TableProps } from '@mui/material';
|
|
3
|
-
import { XyoPayload } from '@xyo-network/payload';
|
|
4
|
-
import { PayloadTableColumnConfig } from './PayloadTableColumnConfig';
|
|
5
|
-
export interface PayloadTableProps extends TableProps {
|
|
6
|
-
exploreDomain?: string;
|
|
7
|
-
archive?: string;
|
|
8
|
-
onRowClick?: (value: XyoPayload) => void;
|
|
9
|
-
payloads?: XyoPayload[] | null;
|
|
10
|
-
columns?: PayloadTableColumnConfig;
|
|
11
|
-
}
|
|
12
|
-
export declare const PayloadTable: React.FC<PayloadTableProps>;
|
|
13
|
-
//# sourceMappingURL=Table.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components/Table/Table.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAiD,UAAU,EAAwB,MAAM,eAAe,CAAA;AAE/G,OAAO,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAA;AAGpE,OAAO,EAAsB,wBAAwB,EAAoC,MAAM,4BAA4B,CAAA;AAG3H,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;IACxC,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,IAAI,CAAA;IAC9B,OAAO,CAAC,EAAE,wBAAwB,CAAA;CACnC;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAwDpD,CAAA"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Alert, Table, TableBody, TableCell, TableHead, TableRow, Typography } from '@mui/material';
|
|
3
|
-
import { useBreakpoint } from '@xylabs/react-shared';
|
|
4
|
-
import { XyoPayloadWrapper } from '@xyo-network/payload';
|
|
5
|
-
import { XyoApiThrownErrorBoundary } from '@xyo-network/react-auth-service';
|
|
6
|
-
import { payloadColumnNames, payloadTableColumnConfigDefaults } from './PayloadTableColumnConfig';
|
|
7
|
-
import { PayloadTableRow } from './TableRow';
|
|
8
|
-
export const PayloadTable = ({ exploreDomain, archive, onRowClick, payloads, children, columns = payloadTableColumnConfigDefaults(), ...props }) => {
|
|
9
|
-
const breakPoint = useBreakpoint();
|
|
10
|
-
return breakPoint ? (_jsxs(Table, { ...props, children: [_jsx(TableHead, { children: _jsx(TableRow, { children: columns[breakPoint]?.map((column, index) => {
|
|
11
|
-
return (_jsx(TableCell, { width: index === 0 ? '100%' : undefined, align: index === 0 ? 'left' : 'center', children: _jsx(Typography, { variant: "caption", noWrap: true, children: _jsx("strong", { children: payloadColumnNames[column] }) }) }, index));
|
|
12
|
-
}) }) }), _jsxs(TableBody, { children: [payloads?.map((payload, index) => {
|
|
13
|
-
const wrapper = new XyoPayloadWrapper(payload);
|
|
14
|
-
return (_jsx(XyoApiThrownErrorBoundary, { errorComponent: (e) => (_jsxs(Alert, { severity: "error", children: ["Error Loading Payload: ", _jsx(Typography, { fontWeight: "bold", children: e.message })] })), children: _jsx(PayloadTableRow, { archive: archive, onClick: onRowClick
|
|
15
|
-
? () => {
|
|
16
|
-
onRowClick(payload);
|
|
17
|
-
}
|
|
18
|
-
: undefined, exploreDomain: exploreDomain, payload: payload }) }, `${wrapper.hash}-${index}`));
|
|
19
|
-
}), children] })] })) : null;
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=Table.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Table.js","sourceRoot":"","sources":["../../../../src/components/Table/Table.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAc,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC/G,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAc,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAA;AAE3E,OAAO,EAAE,kBAAkB,EAA4B,gCAAgC,EAAE,MAAM,4BAA4B,CAAA;AAC3H,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAU5C,MAAM,CAAC,MAAM,YAAY,GAAgC,CAAC,EACxD,aAAa,EACb,OAAO,EACP,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,OAAO,GAAG,gCAAgC,EAAE,EAC5C,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,UAAU,GAAG,aAAa,EAAE,CAAA;IAClC,OAAO,UAAU,CAAC,CAAC,CAAC,CAClB,MAAC,KAAK,OAAK,KAAK,aACd,KAAC,SAAS,cACR,KAAC,QAAQ,cACN,OAAO,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;wBAC1C,OAAO,CACL,KAAC,SAAS,IAAa,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,YACpG,KAAC,UAAU,IAAC,OAAO,EAAC,SAAS,EAAC,MAAM,kBAClC,2BAAS,kBAAkB,CAAC,MAAM,CAAC,GAAU,GAClC,IAHC,KAAK,CAIT,CACb,CAAA;oBACH,CAAC,CAAC,GACO,GACD,EACZ,MAAC,SAAS,eACP,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;wBAChC,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAA;wBAC9C,OAAO,CACL,KAAC,yBAAyB,IAExB,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CACrB,MAAC,KAAK,IAAC,QAAQ,EAAC,OAAO,wCACE,KAAC,UAAU,IAAC,UAAU,EAAC,MAAM,YAAE,CAAC,CAAC,OAAO,GAAc,IACvE,CACT,YAED,KAAC,eAAe,IACd,OAAO,EAAE,OAAO,EAChB,OAAO,EACL,UAAU;oCACR,CAAC,CAAC,GAAG,EAAE;wCACH,UAAU,CAAC,OAAO,CAAC,CAAA;oCACrB,CAAC;oCACH,CAAC,CAAC,SAAS,EAEf,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,OAAO,GAChB,IAlBG,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,EAAE,CAmBL,CAC7B,CAAA;oBACH,CAAC,CAAC,EACD,QAAQ,IACC,IACN,CACT,CAAC,CAAC,CAAC,IAAI,CAAA;AACV,CAAC,CAAA"}
|
|
@@ -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 +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 +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,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 }
|