@xyo-network/react-payload 2.26.32 → 2.26.35
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/README.md +2 -1
- package/dist/cjs/components/Details/ValidationDetails/ValidationDetails.js +4 -5
- package/dist/cjs/components/Details/ValidationDetails/ValidationDetails.js.map +1 -1
- package/dist/cjs/components/Details/ValidationDetails/ValidationDetailsProps.d.ts +0 -1
- package/dist/docs.json +10 -1
- package/dist/esm/components/Details/ValidationDetails/ValidationDetails.js +2 -3
- package/dist/esm/components/Details/ValidationDetails/ValidationDetails.js.map +1 -1
- package/dist/esm/components/Details/ValidationDetails/ValidationDetailsProps.d.ts +0 -1
- package/package.json +15 -15
- package/babel.config.json +0 -5
- package/dist/cjs/hooks/usePayload.d.ts +0 -3
- package/dist/cjs/hooks/usePayload.js +0 -42
- package/dist/cjs/hooks/usePayload.js.map +0 -1
- package/dist/esm/hooks/usePayload.d.ts +0 -2
- package/dist/esm/hooks/usePayload.js +0 -52
- package/dist/esm/hooks/usePayload.js.map +0 -1
- package/src/components/Details/DataDetails.tsx +0 -65
- package/src/components/Details/Details.stories.tsx +0 -62
- package/src/components/Details/Details.tsx +0 -27
- package/src/components/Details/HashSourceDetails.tsx +0 -41
- package/src/components/Details/JsonDetails.tsx +0 -44
- package/src/components/Details/MetaDetails.tsx +0 -38
- package/src/components/Details/ValidationDetails/ValidationDetails.stories.tsx +0 -55
- package/src/components/Details/ValidationDetails/ValidationDetails.tsx +0 -43
- package/src/components/Details/ValidationDetails/ValidationDetailsProps.ts +0 -9
- package/src/components/Details/ValidationDetails/index.ts +0 -2
- package/src/components/Details/index.ts +0 -5
- package/src/components/Table/PayloadTableColumnConfig.ts +0 -28
- package/src/components/Table/Table.stories.tsx +0 -43
- package/src/components/Table/Table.tsx +0 -60
- package/src/components/Table/TableRow.tsx +0 -104
- package/src/components/Table/index.ts +0 -3
- package/src/components/index.ts +0 -2
- package/src/contexts/Payload/Context.ts +0 -5
- package/src/contexts/Payload/Provider.tsx +0 -31
- package/src/contexts/Payload/State.ts +0 -8
- package/src/contexts/Payload/index.ts +0 -4
- package/src/contexts/Payload/use.ts +0 -7
- package/src/contexts/index.ts +0 -1
- package/src/hooks/ResolvePayloadArgs.ts +0 -6
- package/src/hooks/index.ts +0 -6
- package/src/hooks/lib/FetchHuriHashOptions.ts +0 -3
- package/src/hooks/lib/findHuriNetwork.ts +0 -13
- package/src/hooks/lib/index.ts +0 -2
- package/src/hooks/useGetSchema.stories.tsx +0 -70
- package/src/hooks/useGetSchema.tsx +0 -51
- package/src/hooks/useHuriHash.stories.tsx +0 -108
- package/src/hooks/useHuriHash.tsx +0 -38
- package/src/hooks/useLoadPayload.stories.tsx +0 -69
- package/src/hooks/useLoadPayload.tsx +0 -60
- package/src/hooks/useResolveHuri.tsx +0 -74
- package/src/index.ts +0 -3
- package/src/types/images.d.ts +0 -5
package/README.md
CHANGED
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
[![codeclimate-badge][]][codeclimate-link]
|
|
11
11
|
[![snyk-badge][]][snyk-link]
|
|
12
12
|
|
|
13
|
-
> The XYO Foundation provides this source code available in our efforts to
|
|
13
|
+
> The XYO Foundation provides this source code available in our efforts to
|
|
14
|
+
> advance the understanding of the XYO Procotol and its possible uses.
|
|
14
15
|
|
|
15
16
|
## Table of Contents
|
|
16
17
|
|
|
@@ -9,15 +9,14 @@ const payload_1 = require("@xyo-network/payload");
|
|
|
9
9
|
const react_property_1 = require("@xyo-network/react-property");
|
|
10
10
|
const react_schema_1 = require("@xyo-network/react-schema");
|
|
11
11
|
const PayloadValidationDetails = (_a) => {
|
|
12
|
-
var _b, _c
|
|
13
|
-
var { viewSchemaUrl,
|
|
12
|
+
var _b, _c;
|
|
13
|
+
var { viewSchemaUrl, skipBody = false, value } = _a, props = tslib_1.__rest(_a, ["viewSchemaUrl", "skipBody", "value"]);
|
|
14
14
|
const validator = value ? new payload_1.XyoPayloadValidator(value) : undefined;
|
|
15
15
|
const bodyErrors = skipBody ? [] : (_b = validator === null || validator === void 0 ? void 0 : validator.body.validate()) !== null && _b !== void 0 ? _b : [];
|
|
16
|
-
const
|
|
17
|
-
const errors = [...bodyErrors, ...metaErrors];
|
|
16
|
+
const errors = [...bodyErrors];
|
|
18
17
|
let elevation = 2;
|
|
19
18
|
if (props.paper) {
|
|
20
|
-
elevation += (
|
|
19
|
+
elevation += (_c = props.elevation) !== null && _c !== void 0 ? _c : 0;
|
|
21
20
|
}
|
|
22
21
|
return ((0, jsx_runtime_1.jsxs)(react_property_1.PropertyGroup, Object.assign({ titleProps: { elevation }, title: "Validation", tip: "The results from validating the payload" }, props, { children: [(0, jsx_runtime_1.jsx)(react_property_1.Property, { titleProps: { elevation }, flexGrow: 1, title: "Valid", value: errors.length === 0 ? 'True' : 'False', tip: errors.length > 0 ? ((0, jsx_runtime_1.jsx)(react_flexbox_1.FlexCol, { children: errors.map((error, index) => {
|
|
23
22
|
return (0, jsx_runtime_1.jsx)(material_1.Typography, { children: error.toString() }, index);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidationDetails.js","sourceRoot":"","sources":["../../../../../src/components/Details/ValidationDetails/ValidationDetails.tsx"],"names":[],"mappings":";;;;;AAAA,4CAA0C;AAC1C,yDAA+C;AAC/C,kDAA8E;AAC9E,gEAAqE;AACrE,4DAA0D;AAInD,MAAM,wBAAwB,GAA4C,CAAC,
|
|
1
|
+
{"version":3,"file":"ValidationDetails.js","sourceRoot":"","sources":["../../../../../src/components/Details/ValidationDetails/ValidationDetails.tsx"],"names":[],"mappings":";;;;;AAAA,4CAA0C;AAC1C,yDAA+C;AAC/C,kDAA8E;AAC9E,gEAAqE;AACrE,4DAA0D;AAInD,MAAM,wBAAwB,GAA4C,CAAC,EAAoD,EAAE,EAAE;;QAAxD,EAAE,aAAa,EAAE,QAAQ,GAAG,KAAK,EAAE,KAAK,OAAY,EAAP,KAAK,sBAAlD,sCAAoD,CAAF;IAClI,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,6BAAmB,CAAC,KAA2B,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAE1F,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,CAAC,QAAQ,EAAE,mCAAI,EAAE,CAAA;IACnE,MAAM,MAAM,GAAY,CAAC,GAAG,UAAU,CAAC,CAAA;IAEvC,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,IAAI,KAAK,CAAC,KAAK,EAAE;QACf,SAAS,IAAI,MAAA,KAAK,CAAC,SAAS,mCAAI,CAAC,CAAA;KAClC;IAED,OAAO,CACL,wBAAC,8BAAa,kBAAC,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,EAAC,YAAY,EAAC,GAAG,EAAC,yCAAyC,IAAK,KAAK,eAClH,uBAAC,yBAAQ,IACP,UAAU,EAAE,EAAE,SAAS,EAAE,EACzB,QAAQ,EAAE,CAAC,EACX,KAAK,EAAC,OAAO,EACb,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAC7C,GAAG,EACD,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAClB,uBAAC,uBAAO,cACL,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;wBAC3B,OAAO,uBAAC,qBAAU,cAAc,KAAK,CAAC,QAAQ,EAAE,IAAxB,KAAK,CAAiC,CAAA;oBAChE,CAAC,CAAC,GACM,CACX,CAAC,CAAC,CAAC,CACF,uBAAC,qBAAU,4BAAuB,CACnC,GAEH,EACD,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,KAAI,uBAAC,6BAAc,IAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,GAAI,KACjH,CACjB,CAAA;AACH,CAAC,CAAA;AAjCY,QAAA,wBAAwB,4BAiCpC"}
|
|
@@ -2,7 +2,6 @@ import { XyoPayloadWithPartialMeta } from '@xyo-network/payload';
|
|
|
2
2
|
import { PropertyGroupProps } from '@xyo-network/react-property';
|
|
3
3
|
export declare type PayloadValidationDetailsProps = PropertyGroupProps & {
|
|
4
4
|
skipBody?: boolean;
|
|
5
|
-
skipMeta?: boolean;
|
|
6
5
|
value?: XyoPayloadWithPartialMeta;
|
|
7
6
|
viewSchemaUrl?: string;
|
|
8
7
|
};
|
package/dist/docs.json
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
"id": 0,
|
|
3
3
|
"name": "@xyo-network/react-payload",
|
|
4
4
|
"kind": 1,
|
|
5
|
+
"kindString": "Project",
|
|
5
6
|
"flags": {},
|
|
6
|
-
"originalName": ""
|
|
7
|
+
"originalName": "",
|
|
8
|
+
"sources": [
|
|
9
|
+
{
|
|
10
|
+
"fileName": "index.ts",
|
|
11
|
+
"line": 1,
|
|
12
|
+
"character": 0,
|
|
13
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/7efa6fa/packages/payload/src/index.ts#L1"
|
|
14
|
+
}
|
|
15
|
+
]
|
|
7
16
|
}
|
|
@@ -4,11 +4,10 @@ import { FlexCol } from '@xylabs/react-flexbox';
|
|
|
4
4
|
import { XyoPayloadValidator } from '@xyo-network/payload';
|
|
5
5
|
import { Property, PropertyGroup } from '@xyo-network/react-property';
|
|
6
6
|
import { SchemaProperty } from '@xyo-network/react-schema';
|
|
7
|
-
export const PayloadValidationDetails = ({ viewSchemaUrl,
|
|
7
|
+
export const PayloadValidationDetails = ({ viewSchemaUrl, skipBody = false, value, ...props }) => {
|
|
8
8
|
const validator = value ? new XyoPayloadValidator(value) : undefined;
|
|
9
9
|
const bodyErrors = skipBody ? [] : validator?.body.validate() ?? [];
|
|
10
|
-
const
|
|
11
|
-
const errors = [...bodyErrors, ...metaErrors];
|
|
10
|
+
const errors = [...bodyErrors];
|
|
12
11
|
let elevation = 2;
|
|
13
12
|
if (props.paper) {
|
|
14
13
|
elevation += props.elevation ?? 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidationDetails.js","sourceRoot":"","sources":["../../../../../src/components/Details/ValidationDetails/ValidationDetails.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAsB,MAAM,sBAAsB,CAAA;AAC9E,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAI1D,MAAM,CAAC,MAAM,wBAAwB,GAA4C,CAAC,EAAE,aAAa,EAAE,QAAQ,GAAG,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"ValidationDetails.js","sourceRoot":"","sources":["../../../../../src/components/Details/ValidationDetails/ValidationDetails.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAsB,MAAM,sBAAsB,CAAA;AAC9E,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAI1D,MAAM,CAAC,MAAM,wBAAwB,GAA4C,CAAC,EAAE,aAAa,EAAE,QAAQ,GAAG,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACxI,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,KAA2B,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAE1F,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAA;IACnE,MAAM,MAAM,GAAY,CAAC,GAAG,UAAU,CAAC,CAAA;IAEvC,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,IAAI,KAAK,CAAC,KAAK,EAAE;QACf,SAAS,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,CAAA;KAClC;IAED,OAAO,CACL,MAAC,aAAa,IAAC,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,EAAC,YAAY,EAAC,GAAG,EAAC,yCAAyC,KAAK,KAAK,aAClH,KAAC,QAAQ,IACP,UAAU,EAAE,EAAE,SAAS,EAAE,EACzB,QAAQ,EAAE,CAAC,EACX,KAAK,EAAC,OAAO,EACb,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAC7C,GAAG,EACD,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAClB,KAAC,OAAO,cACL,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;wBAC3B,OAAO,KAAC,UAAU,cAAc,KAAK,CAAC,QAAQ,EAAE,IAAxB,KAAK,CAAiC,CAAA;oBAChE,CAAC,CAAC,GACM,CACX,CAAC,CAAC,CAAC,CACF,KAAC,UAAU,4BAAuB,CACnC,GAEH,EACD,KAAK,EAAE,MAAM,IAAI,KAAC,cAAc,IAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,GAAI,IACjH,CACjB,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -2,7 +2,6 @@ import { XyoPayloadWithPartialMeta } from '@xyo-network/payload';
|
|
|
2
2
|
import { PropertyGroupProps } from '@xyo-network/react-property';
|
|
3
3
|
export declare type PayloadValidationDetailsProps = PropertyGroupProps & {
|
|
4
4
|
skipBody?: boolean;
|
|
5
|
-
skipMeta?: boolean;
|
|
6
5
|
value?: XyoPayloadWithPartialMeta;
|
|
7
6
|
viewSchemaUrl?: string;
|
|
8
7
|
};
|
package/package.json
CHANGED
|
@@ -13,23 +13,23 @@
|
|
|
13
13
|
"@emotion/react": "^11.9.3",
|
|
14
14
|
"@emotion/styled": "^11.9.3",
|
|
15
15
|
"@mui/icons-material": "^5.8.4",
|
|
16
|
-
"@mui/material": "^5.9.
|
|
16
|
+
"@mui/material": "^5.9.2",
|
|
17
17
|
"@xylabs/react-button": "^2.14.10",
|
|
18
18
|
"@xylabs/react-flexbox": "^2.14.10",
|
|
19
19
|
"@xylabs/react-quick-tip-button": "^2.14.10",
|
|
20
20
|
"@xylabs/react-shared": "^2.14.10",
|
|
21
|
-
"@xyo-network/api": "^2.22.
|
|
22
|
-
"@xyo-network/network": "^2.22.
|
|
23
|
-
"@xyo-network/payload": "^2.22.
|
|
24
|
-
"@xyo-network/react-archive": "^2.26.
|
|
25
|
-
"@xyo-network/react-archivist": "^2.26.
|
|
26
|
-
"@xyo-network/react-archivist-api": "^2.26.
|
|
27
|
-
"@xyo-network/react-auth-service": "^2.26.
|
|
28
|
-
"@xyo-network/react-network": "^2.26.
|
|
29
|
-
"@xyo-network/react-property": "^2.26.
|
|
30
|
-
"@xyo-network/react-schema": "^2.26.
|
|
31
|
-
"@xyo-network/react-shared": "^2.26.
|
|
32
|
-
"@xyo-network/utils": "^2.22.
|
|
21
|
+
"@xyo-network/api": "^2.22.15",
|
|
22
|
+
"@xyo-network/network": "^2.22.15",
|
|
23
|
+
"@xyo-network/payload": "^2.22.15",
|
|
24
|
+
"@xyo-network/react-archive": "^2.26.35",
|
|
25
|
+
"@xyo-network/react-archivist": "^2.26.35",
|
|
26
|
+
"@xyo-network/react-archivist-api": "^2.26.35",
|
|
27
|
+
"@xyo-network/react-auth-service": "^2.26.35",
|
|
28
|
+
"@xyo-network/react-network": "^2.26.35",
|
|
29
|
+
"@xyo-network/react-property": "^2.26.35",
|
|
30
|
+
"@xyo-network/react-schema": "^2.26.35",
|
|
31
|
+
"@xyo-network/react-shared": "^2.26.35",
|
|
32
|
+
"@xyo-network/utils": "^2.22.15",
|
|
33
33
|
"luxon": "^3.0.1",
|
|
34
34
|
"react": "^18.2.0",
|
|
35
35
|
"react-dom": "^18.2.0",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"@babel/preset-env": "^7.18.9",
|
|
45
45
|
"@storybook/react": "^6.5.9",
|
|
46
46
|
"@types/luxon": "^3.0.0",
|
|
47
|
-
"@xylabs/tsconfig": "^
|
|
47
|
+
"@xylabs/tsconfig-dom": "^2.5.3"
|
|
48
48
|
},
|
|
49
49
|
"browser": "dist/esm/index.js",
|
|
50
50
|
"docs": "dist/docs.json",
|
|
@@ -95,5 +95,5 @@
|
|
|
95
95
|
},
|
|
96
96
|
"sideEffects": false,
|
|
97
97
|
"types": "dist/esm/index.d.ts",
|
|
98
|
-
"version": "2.26.
|
|
98
|
+
"version": "2.26.35"
|
|
99
99
|
}
|
package/babel.config.json
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.usePayload = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const react_shared_1 = require("@xylabs/react-shared");
|
|
6
|
-
const react_archive_1 = require("@xyo-network/react-archive");
|
|
7
|
-
const react_archivist_api_1 = require("@xyo-network/react-archivist-api");
|
|
8
|
-
const react_1 = require("react");
|
|
9
|
-
const usePayload = (hash) => {
|
|
10
|
-
const { api } = (0, react_archivist_api_1.useArchivistApi)();
|
|
11
|
-
const { archive } = (0, react_archive_1.useArchive)();
|
|
12
|
-
const [notFound, setNotFound] = (0, react_1.useState)(false);
|
|
13
|
-
const [apiError, setApiError] = (0, react_1.useState)();
|
|
14
|
-
const [payload, setPayload] = (0, react_1.useState)();
|
|
15
|
-
(0, react_shared_1.useAsyncEffect)(
|
|
16
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
17
|
-
(mounted) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
18
|
-
if (hash && hash.length > 0) {
|
|
19
|
-
try {
|
|
20
|
-
const result = yield (api === null || api === void 0 ? void 0 : api.archive(archive).payload.hash(hash).get());
|
|
21
|
-
if (mounted()) {
|
|
22
|
-
setApiError(undefined);
|
|
23
|
-
if (result === null || result === void 0 ? void 0 : result.length) {
|
|
24
|
-
setPayload(result[0]);
|
|
25
|
-
}
|
|
26
|
-
else if (result) {
|
|
27
|
-
setNotFound(true);
|
|
28
|
-
setPayload(undefined);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
catch (e) {
|
|
33
|
-
setApiError(e);
|
|
34
|
-
setPayload(undefined);
|
|
35
|
-
console.error(e);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}), [hash, api, archive]);
|
|
39
|
-
return [payload, notFound, apiError];
|
|
40
|
-
};
|
|
41
|
-
exports.usePayload = usePayload;
|
|
42
|
-
//# sourceMappingURL=usePayload.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usePayload.js","sourceRoot":"","sources":["../../../src/hooks/usePayload.tsx"],"names":[],"mappings":";;;;AAAA,uDAAqD;AAGrD,8DAAuD;AACvD,0EAAkE;AAClE,iCAAgC;AAEzB,MAAM,UAAU,GAAG,CAAC,IAAa,EAA8D,EAAE;IACtG,MAAM,EAAE,GAAG,EAAE,GAAG,IAAA,qCAAe,GAAE,CAAA;IACjC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,0BAAU,GAAE,CAAA;IAChC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAC/C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,GAAe,CAAA;IACvD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,GAAc,CAAA;IACpD,IAAA,6BAAc;IACZ,uDAAuD;IACvD,CAAO,OAAO,EAAE,EAAE;QAChB,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,IAAI;gBACF,MAAM,MAAM,GAAG,MAAM,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAA,CAAA;gBACnE,IAAI,OAAO,EAAE,EAAE;oBACb,WAAW,CAAC,SAAS,CAAC,CAAA;oBACtB,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,EAAE;wBAClB,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;qBACtB;yBAAM,IAAI,MAAM,EAAE;wBACjB,WAAW,CAAC,IAAI,CAAC,CAAA;wBACjB,UAAU,CAAC,SAAS,CAAC,CAAA;qBACtB;iBACF;aACF;YAAC,OAAO,CAAC,EAAE;gBACV,WAAW,CAAC,CAAgB,CAAC,CAAA;gBAC7B,UAAU,CAAC,SAAS,CAAC,CAAA;gBACrB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;aACjB;SACF;IACH,CAAC,CAAA,EACD,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CACrB,CAAA;IACD,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;AACtC,CAAC,CAAA;AA/BY,QAAA,UAAU,cA+BtB"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { useAsyncEffect } from '@xylabs/react-shared';
|
|
2
|
-
import { useArchive } from '@xyo-network/react-archive';
|
|
3
|
-
import { useArchivistApi } from '@xyo-network/react-archivist-api';
|
|
4
|
-
import { useEffect, useState } from 'react';
|
|
5
|
-
export const usePayload = (hash) => {
|
|
6
|
-
const { api } = useArchivistApi();
|
|
7
|
-
const { archive } = useArchive();
|
|
8
|
-
const [localHash, setLocalHash] = useState();
|
|
9
|
-
const [notFound, setNotFound] = useState();
|
|
10
|
-
const [apiError, setApiError] = useState();
|
|
11
|
-
const [payload, setPayload] = useState();
|
|
12
|
-
const reset = () => {
|
|
13
|
-
setPayload(undefined);
|
|
14
|
-
setApiError(undefined);
|
|
15
|
-
setNotFound(undefined);
|
|
16
|
-
};
|
|
17
|
-
// allow for hash changes to retrigger the api call
|
|
18
|
-
useEffect(() => {
|
|
19
|
-
if (hash !== localHash) {
|
|
20
|
-
setLocalHash(hash);
|
|
21
|
-
reset();
|
|
22
|
-
}
|
|
23
|
-
}, [hash, localHash]);
|
|
24
|
-
useAsyncEffect(
|
|
25
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
26
|
-
async (mounted) => {
|
|
27
|
-
if (api && localHash && localHash.length > 0 && notFound === undefined) {
|
|
28
|
-
reset();
|
|
29
|
-
try {
|
|
30
|
-
const result = await api?.archive(archive).payload.hash(localHash).get();
|
|
31
|
-
if (mounted()) {
|
|
32
|
-
if (result?.length) {
|
|
33
|
-
setPayload(result[0]);
|
|
34
|
-
setNotFound(false);
|
|
35
|
-
}
|
|
36
|
-
else if (result?.length === 0) {
|
|
37
|
-
setNotFound(true);
|
|
38
|
-
setPayload(undefined);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
catch (e) {
|
|
43
|
-
reset();
|
|
44
|
-
setNotFound(false);
|
|
45
|
-
setApiError(e);
|
|
46
|
-
console.error(e);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}, [hash, api, archive, payload, notFound, localHash]);
|
|
50
|
-
return [payload, notFound, apiError];
|
|
51
|
-
};
|
|
52
|
-
//# sourceMappingURL=usePayload.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usePayload.js","sourceRoot":"","sources":["../../../src/hooks/usePayload.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAI3C,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAa,EAAc,EAAE;IACtD,MAAM,EAAE,GAAG,EAAE,GAAG,eAAe,EAAE,CAAA;IACjC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAAA;IAChC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,EAAU,CAAA;IACpD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAW,CAAA;IACnD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAe,CAAA;IACvD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAc,CAAA;IAEpD,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,UAAU,CAAC,SAAS,CAAC,CAAA;QACrB,WAAW,CAAC,SAAS,CAAC,CAAA;QACtB,WAAW,CAAC,SAAS,CAAC,CAAA;IACxB,CAAC,CAAA;IAED,mDAAmD;IACnD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,YAAY,CAAC,IAAI,CAAC,CAAA;YAClB,KAAK,EAAE,CAAA;SACR;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAA;IAErB,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,IAAI,GAAG,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,KAAK,SAAS,EAAE;YACtE,KAAK,EAAE,CAAA;YACP,IAAI;gBACF,MAAM,MAAM,GAAG,MAAM,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,CAAA;gBACxE,IAAI,OAAO,EAAE,EAAE;oBACb,IAAI,MAAM,EAAE,MAAM,EAAE;wBAClB,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;wBACrB,WAAW,CAAC,KAAK,CAAC,CAAA;qBACnB;yBAAM,IAAI,MAAM,EAAE,MAAM,KAAK,CAAC,EAAE;wBAC/B,WAAW,CAAC,IAAI,CAAC,CAAA;wBACjB,UAAU,CAAC,SAAS,CAAC,CAAA;qBACtB;iBACF;aACF;YAAC,OAAO,CAAC,EAAE;gBACV,KAAK,EAAE,CAAA;gBACP,WAAW,CAAC,KAAK,CAAC,CAAA;gBAClB,WAAW,CAAC,CAAgB,CAAC,CAAA;gBAC7B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;aACjB;SACF;IACH,CAAC,EACD,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CACnD,CAAA;IACD,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;AACtC,CAAC,CAAA"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import ContentCopyIcon from '@mui/icons-material/ContentCopy'
|
|
2
|
-
import VisibilityIcon from '@mui/icons-material/Visibility'
|
|
3
|
-
import { Dialog, DialogActions, DialogContent, DialogTitle } from '@mui/material'
|
|
4
|
-
import { ButtonEx } from '@xylabs/react-button'
|
|
5
|
-
import { XyoPayload, XyoPayloadWrapper } from '@xyo-network/payload'
|
|
6
|
-
import { Property, PropertyAction, PropertyProps } from '@xyo-network/react-property'
|
|
7
|
-
import { SizeProp } from '@xyo-network/react-shared'
|
|
8
|
-
import { useState } from 'react'
|
|
9
|
-
|
|
10
|
-
import { PayloadHashSourceDetails } from './HashSourceDetails'
|
|
11
|
-
|
|
12
|
-
export type PayloadDataDetailsProps = PropertyProps & {
|
|
13
|
-
payload?: XyoPayload
|
|
14
|
-
size?: SizeProp
|
|
15
|
-
badge?: boolean
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export const PayloadDataDetails: React.FC<PayloadDataDetailsProps> = ({ size, badge, payload, ...props }) => {
|
|
19
|
-
const wrapper = payload ? new XyoPayloadWrapper(payload) : undefined
|
|
20
|
-
|
|
21
|
-
const [viewSourceOpen, setViewSourceOpen] = useState(false)
|
|
22
|
-
const hash = wrapper?.hash
|
|
23
|
-
|
|
24
|
-
let elevation = 2
|
|
25
|
-
if (props.paper) {
|
|
26
|
-
elevation += props.elevation ?? 0
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
const actions: PropertyAction[] = [
|
|
30
|
-
{
|
|
31
|
-
icon: <VisibilityIcon />,
|
|
32
|
-
name: 'View',
|
|
33
|
-
onClick: () => setViewSourceOpen(true),
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
icon: <ContentCopyIcon />,
|
|
37
|
-
name: 'Copy',
|
|
38
|
-
onClick: async () => await navigator.clipboard.writeText(wrapper?.hash ?? ''),
|
|
39
|
-
},
|
|
40
|
-
]
|
|
41
|
-
|
|
42
|
-
const onCopy = async () => {
|
|
43
|
-
await navigator.clipboard.writeText(wrapper?.stringified ?? '')
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
return (
|
|
47
|
-
<>
|
|
48
|
-
<Property titleProps={{ elevation }} badge={badge} size={size} actions={actions} title="Payload Hash" value={hash ?? '<Unknown>'} tip="This is the payload hash" {...props} />
|
|
49
|
-
<Dialog open={viewSourceOpen} onClose={() => setViewSourceOpen(false)}>
|
|
50
|
-
<DialogTitle>Hash Source</DialogTitle>
|
|
51
|
-
<DialogContent>
|
|
52
|
-
<PayloadHashSourceDetails noTitle payload={payload} />
|
|
53
|
-
</DialogContent>
|
|
54
|
-
<DialogActions>
|
|
55
|
-
<ButtonEx color="secondary" onClick={onCopy}>
|
|
56
|
-
Copy
|
|
57
|
-
</ButtonEx>
|
|
58
|
-
<ButtonEx color="secondary" onClick={() => setViewSourceOpen(false)}>
|
|
59
|
-
Close
|
|
60
|
-
</ButtonEx>
|
|
61
|
-
</DialogActions>
|
|
62
|
-
</Dialog>
|
|
63
|
-
</>
|
|
64
|
-
)
|
|
65
|
-
}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { ComponentMeta, ComponentStory } from '@storybook/react'
|
|
2
|
-
import { BrowserRouter, Route, Routes } from 'react-router-dom'
|
|
3
|
-
|
|
4
|
-
import { appThemeDecorator, samplePayload, samplePayloadFromBuilder } from '../../../../../.storybook'
|
|
5
|
-
import { PayloadDetails } from './Details'
|
|
6
|
-
|
|
7
|
-
const StorybookEntry = {
|
|
8
|
-
argTypes: {},
|
|
9
|
-
component: PayloadDetails,
|
|
10
|
-
parameters: {
|
|
11
|
-
docs: {
|
|
12
|
-
page: null,
|
|
13
|
-
},
|
|
14
|
-
},
|
|
15
|
-
title: 'payload/Details',
|
|
16
|
-
} as ComponentMeta<typeof PayloadDetails>
|
|
17
|
-
|
|
18
|
-
const Template: ComponentStory<typeof PayloadDetails> = (args) => (
|
|
19
|
-
<BrowserRouter>
|
|
20
|
-
<Routes>
|
|
21
|
-
<Route path="temp" element={<h1>Successfully navigated to archivePath</h1>} />
|
|
22
|
-
<Route path="*" element={<PayloadDetails {...args}></PayloadDetails>}></Route>
|
|
23
|
-
</Routes>
|
|
24
|
-
</BrowserRouter>
|
|
25
|
-
)
|
|
26
|
-
|
|
27
|
-
const Default = Template.bind({})
|
|
28
|
-
Default.args = {}
|
|
29
|
-
Default.decorators = [appThemeDecorator]
|
|
30
|
-
|
|
31
|
-
const WithSample = Template.bind({})
|
|
32
|
-
WithSample.args = { payload: samplePayload }
|
|
33
|
-
WithSample.decorators = [appThemeDecorator]
|
|
34
|
-
|
|
35
|
-
const WithBuilderSample = Template.bind({})
|
|
36
|
-
WithBuilderSample.args = { payload: samplePayloadFromBuilder }
|
|
37
|
-
WithBuilderSample.decorators = [appThemeDecorator]
|
|
38
|
-
|
|
39
|
-
const WithArchiveLink = Template.bind({})
|
|
40
|
-
WithArchiveLink.args = { archivePath: 'temp', payload: samplePayloadFromBuilder }
|
|
41
|
-
WithArchiveLink.decorators = [appThemeDecorator]
|
|
42
|
-
|
|
43
|
-
const DefaultPaper = Template.bind({})
|
|
44
|
-
DefaultPaper.args = { paper: true }
|
|
45
|
-
DefaultPaper.decorators = [appThemeDecorator]
|
|
46
|
-
|
|
47
|
-
const WithSamplePaper = Template.bind({})
|
|
48
|
-
WithSamplePaper.args = { paper: true, payload: samplePayload }
|
|
49
|
-
WithSamplePaper.decorators = [appThemeDecorator]
|
|
50
|
-
|
|
51
|
-
const WithBuilderSamplePaper = Template.bind({})
|
|
52
|
-
WithBuilderSamplePaper.args = { paper: true, payload: samplePayloadFromBuilder }
|
|
53
|
-
WithBuilderSamplePaper.decorators = [appThemeDecorator]
|
|
54
|
-
|
|
55
|
-
const WithArchiveLinkPaper = Template.bind({})
|
|
56
|
-
WithArchiveLinkPaper.args = { archivePath: 'temp', paper: true, payload: samplePayloadFromBuilder }
|
|
57
|
-
WithArchiveLinkPaper.decorators = [appThemeDecorator]
|
|
58
|
-
|
|
59
|
-
export { Default, DefaultPaper, WithArchiveLink, WithArchiveLinkPaper, WithBuilderSample, WithBuilderSamplePaper, WithSample, WithSamplePaper }
|
|
60
|
-
|
|
61
|
-
// eslint-disable-next-line import/no-default-export
|
|
62
|
-
export default StorybookEntry
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'
|
|
2
|
-
import { XyoPayload } from '@xyo-network/payload'
|
|
3
|
-
|
|
4
|
-
import { PayloadDataDetails } from './DataDetails'
|
|
5
|
-
import { PayloadJsonDetails } from './JsonDetails'
|
|
6
|
-
import { PayloadMetaDetails } from './MetaDetails'
|
|
7
|
-
import { PayloadValidationDetails } from './ValidationDetails'
|
|
8
|
-
|
|
9
|
-
export type WithPaper<T> = T & { paper: true }
|
|
10
|
-
export type WithoutPaper<T> = T & { paper?: false }
|
|
11
|
-
|
|
12
|
-
export type PayloadDetailsProps = FlexBoxProps & {
|
|
13
|
-
payload?: XyoPayload
|
|
14
|
-
paper?: boolean
|
|
15
|
-
archivePath?: string
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export const PayloadDetails: React.FC<PayloadDetailsProps> = ({ archivePath, paper, payload, ...props }) => {
|
|
19
|
-
return (
|
|
20
|
-
<FlexCol gap={1} justifyContent="flex-start" alignItems="stretch" marginTop={2} marginBottom={8} {...props}>
|
|
21
|
-
<PayloadDataDetails paper={paper} size="large" badge payload={payload} />
|
|
22
|
-
<PayloadMetaDetails archivePath={archivePath} paper={paper ? true : false} value={payload} />
|
|
23
|
-
<PayloadValidationDetails paper={paper} value={payload} />
|
|
24
|
-
<PayloadJsonDetails paper={paper} payload={payload} />
|
|
25
|
-
</FlexCol>
|
|
26
|
-
)
|
|
27
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import ContentCopyIcon from '@mui/icons-material/ContentCopy'
|
|
2
|
-
import { IconButton, Typography, useTheme } from '@mui/material'
|
|
3
|
-
import { FlexBoxProps, FlexCol, FlexGrowRow, FlexRow } from '@xylabs/react-flexbox'
|
|
4
|
-
import { QuickTipButton } from '@xylabs/react-quick-tip-button'
|
|
5
|
-
import { XyoPayload, XyoPayloadWrapper } from '@xyo-network/payload'
|
|
6
|
-
|
|
7
|
-
export interface PayloadHashSourceDetailsProps extends FlexBoxProps {
|
|
8
|
-
noTitle?: boolean
|
|
9
|
-
payload?: XyoPayload
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export const PayloadHashSourceDetails: React.FC<PayloadHashSourceDetailsProps> = ({ noTitle = false, payload, ...props }) => {
|
|
13
|
-
const theme = useTheme()
|
|
14
|
-
const payloadWrapper = payload ? new XyoPayloadWrapper(payload) : null
|
|
15
|
-
|
|
16
|
-
return (
|
|
17
|
-
<FlexCol alignItems="stretch" {...props}>
|
|
18
|
-
{noTitle ? null : (
|
|
19
|
-
<FlexRow margin={1} justifyContent="flex-start">
|
|
20
|
-
<Typography>Hash Source</Typography>
|
|
21
|
-
<QuickTipButton title="Hash Source">The actual string used to generate the hash (SHA256)</QuickTipButton>
|
|
22
|
-
</FlexRow>
|
|
23
|
-
)}
|
|
24
|
-
<FlexRow>
|
|
25
|
-
<FlexGrowRow background border={1} borderColor={theme.palette.divider} justifyContent="start">
|
|
26
|
-
<Typography padding={2} fontFamily="monospace" variant="body1" sx={{ overflowWrap: 'break-word', wordBreak: 'break-all' }}>
|
|
27
|
-
{payloadWrapper?.stringified ?? ''}
|
|
28
|
-
</Typography>
|
|
29
|
-
</FlexGrowRow>
|
|
30
|
-
<IconButton>
|
|
31
|
-
<ContentCopyIcon />
|
|
32
|
-
</IconButton>
|
|
33
|
-
</FlexRow>
|
|
34
|
-
{noTitle ? (
|
|
35
|
-
<FlexRow margin={1} justifyContent="flex-start">
|
|
36
|
-
<Typography variant="body2">The actual string used to generate the hash (SHA256). This can be used to validate the hash manually.</Typography>
|
|
37
|
-
</FlexRow>
|
|
38
|
-
) : null}
|
|
39
|
-
</FlexCol>
|
|
40
|
-
)
|
|
41
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { Paper, useMediaQuery, useTheme } from '@mui/material'
|
|
2
|
-
import { FlexGrowRow } from '@xylabs/react-flexbox'
|
|
3
|
-
import { XyoPayload } from '@xyo-network/payload'
|
|
4
|
-
import { PropertyGroup, PropertyGroupProps } from '@xyo-network/react-property'
|
|
5
|
-
import { lazy, Suspense } from 'react'
|
|
6
|
-
import { ReactJsonViewProps } from 'react-json-view'
|
|
7
|
-
|
|
8
|
-
const JsonView = lazy(() => import(/* webpackChunkName: "jsonView" */ 'react-json-view'))
|
|
9
|
-
|
|
10
|
-
export type PayloadJsonDetailsProps = PropertyGroupProps & {
|
|
11
|
-
payload?: XyoPayload
|
|
12
|
-
jsonViewProps?: ReactJsonViewProps
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export const PayloadJsonDetails: React.FC<PayloadJsonDetailsProps> = ({ jsonViewProps, payload = {}, ...props }) => {
|
|
16
|
-
const { breakpoints, palette } = useTheme()
|
|
17
|
-
const belowSm = useMediaQuery(breakpoints.down('sm'))
|
|
18
|
-
|
|
19
|
-
let elevation = 2
|
|
20
|
-
if (props.paper) {
|
|
21
|
-
elevation += props.elevation ?? 0
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const jsonTheme = palette.mode === 'dark' ? 'shapeshifter' : undefined
|
|
25
|
-
|
|
26
|
-
return (
|
|
27
|
-
<PropertyGroup titleProps={{ elevation }} title="JSON" tip="The raw JSON of the payload" {...props}>
|
|
28
|
-
<Paper square variant="elevation" style={{ overflow: 'hidden', padding: '16px', width: '100%' }}>
|
|
29
|
-
<Suspense fallback={<FlexGrowRow />}>
|
|
30
|
-
<JsonView
|
|
31
|
-
groupArraysAfterLength={5}
|
|
32
|
-
shouldCollapse={(props) => props.name !== 'root'}
|
|
33
|
-
style={{ backgroundColor: undefined, overflow: 'hidden' }}
|
|
34
|
-
src={payload}
|
|
35
|
-
enableClipboard
|
|
36
|
-
theme={jsonTheme}
|
|
37
|
-
collapseStringsAfterLength={belowSm ? 24 : 32}
|
|
38
|
-
{...jsonViewProps}
|
|
39
|
-
/>
|
|
40
|
-
</Suspense>
|
|
41
|
-
</Paper>
|
|
42
|
-
</PropertyGroup>
|
|
43
|
-
)
|
|
44
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { XyoPayloadWithPartialMeta } from '@xyo-network/payload'
|
|
2
|
-
import { ArchiveProperty } from '@xyo-network/react-archive'
|
|
3
|
-
import { Property, PropertyGroup, PropertyGroupProps } from '@xyo-network/react-property'
|
|
4
|
-
|
|
5
|
-
export type PayloadMetaDetailsProps = PropertyGroupProps & {
|
|
6
|
-
value?: XyoPayloadWithPartialMeta
|
|
7
|
-
archivePath?: string
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export const PayloadMetaDetails: React.FC<PayloadMetaDetailsProps> = ({ archivePath, value, ...props }) => {
|
|
11
|
-
let elevation = 2
|
|
12
|
-
if (props.paper) {
|
|
13
|
-
elevation += props.elevation ?? 0
|
|
14
|
-
}
|
|
15
|
-
return (
|
|
16
|
-
<PropertyGroup titleProps={{ elevation }} title="Meta" tip="The meta fields added to the record by the archivist" {...props}>
|
|
17
|
-
{value?._client ? (
|
|
18
|
-
<Property titleProps={{ elevation }} flexGrow={1} title="Client" value={value?._client ?? '<Unknown>'} tip="This client used to create this payload" />
|
|
19
|
-
) : null}
|
|
20
|
-
{value?._archive ? <ArchiveProperty titleProps={{ elevation }} flexGrow={1} payload={value} path={archivePath} /> : null}
|
|
21
|
-
{value?._reportedHash ? (
|
|
22
|
-
<Property titleProps={{ elevation }} flexGrow={1} title="Reported Hash" value={value?._reportedHash ?? '<Unknown>'} tip="The has reported by the payload" />
|
|
23
|
-
) : null}
|
|
24
|
-
{value?._timestamp ? (
|
|
25
|
-
<Property titleProps={{ elevation }} flexGrow={1} title="Timestamp" value={value?._timestamp ?? '<Unknown>'} tip="This timestamp of the payload" />
|
|
26
|
-
) : null}
|
|
27
|
-
{value?._observeDuration ? (
|
|
28
|
-
<Property
|
|
29
|
-
titleProps={{ elevation }}
|
|
30
|
-
flexGrow={1}
|
|
31
|
-
title="Observation Duration"
|
|
32
|
-
value={value?._observeDuration ?? '<Unknown>'}
|
|
33
|
-
tip="This duration of time observed by the witness"
|
|
34
|
-
/>
|
|
35
|
-
) : null}
|
|
36
|
-
</PropertyGroup>
|
|
37
|
-
)
|
|
38
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { ComponentStory, Meta } from '@storybook/react'
|
|
2
|
-
import { BrowserRouter } from 'react-router-dom'
|
|
3
|
-
|
|
4
|
-
import { appThemeDecorator, samplePayload } from '../../../../../../.storybook'
|
|
5
|
-
import { PayloadDetails } from '../Details'
|
|
6
|
-
import { PayloadValidationDetails } from './ValidationDetails'
|
|
7
|
-
|
|
8
|
-
const StorybookEntry: Meta = {
|
|
9
|
-
argTypes: {},
|
|
10
|
-
args: {
|
|
11
|
-
value: {
|
|
12
|
-
schema: 'network.xyo.schema',
|
|
13
|
-
},
|
|
14
|
-
},
|
|
15
|
-
component: PayloadDetails,
|
|
16
|
-
decorators: [appThemeDecorator],
|
|
17
|
-
parameters: {
|
|
18
|
-
docs: {
|
|
19
|
-
page: null,
|
|
20
|
-
},
|
|
21
|
-
},
|
|
22
|
-
title: 'payload/ValidationDetails',
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
const Template: ComponentStory<typeof PayloadValidationDetails> = (args) => (
|
|
26
|
-
<BrowserRouter>
|
|
27
|
-
<PayloadValidationDetails {...args} />
|
|
28
|
-
</BrowserRouter>
|
|
29
|
-
)
|
|
30
|
-
|
|
31
|
-
const Default = Template.bind({})
|
|
32
|
-
Default.args = { skipBody: true, skipMeta: true }
|
|
33
|
-
|
|
34
|
-
const WithViewSchemaLink = Template.bind({})
|
|
35
|
-
WithViewSchemaLink.args = { viewSchemaUrl: 'http://beta.explore.xyo.network/6fe3f745b1179fefa74cc3c7eab58321bee1c9ca9e34d9585467364cc5d3bbe2/?huri=huri' }
|
|
36
|
-
|
|
37
|
-
const WithErrorsInToolTip = Template.bind({})
|
|
38
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
39
|
-
// @ts-ignore
|
|
40
|
-
WithErrorsInToolTip.args = { value: { ...samplePayload, ...{ _hash: '6fe3f745b1179fefa74cc3c7eab58321bee1c9ca9e34d9585467364cc5d3bbe2' } } }
|
|
41
|
-
|
|
42
|
-
const SkipBody = Template.bind({})
|
|
43
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
44
|
-
// @ts-ignore
|
|
45
|
-
SkipBody.args = { skipBody: true, value: { _hash: '44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a', _timestamp: new Date().getTime() } }
|
|
46
|
-
|
|
47
|
-
const SkipMeta = Template.bind({})
|
|
48
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
49
|
-
// @ts-ignore
|
|
50
|
-
SkipMeta.args = { skipMeta: true, value: { _hash: null, schema: 'network.xyo.schema' } }
|
|
51
|
-
|
|
52
|
-
export { Default, SkipBody, SkipMeta, WithErrorsInToolTip, WithViewSchemaLink }
|
|
53
|
-
|
|
54
|
-
// eslint-disable-next-line import/no-default-export
|
|
55
|
-
export default StorybookEntry
|