@xyo-network/react-payload-details 3.0.1 → 3.0.3
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/browser/components/Details/DataDetails.d.ts +11 -0
- package/dist/browser/components/Details/DataDetails.d.ts.map +1 -0
- package/dist/browser/components/Details/Details.d.ts +18 -0
- package/dist/browser/components/Details/Details.d.ts.map +1 -0
- package/dist/browser/components/Details/HashSourceDetails.d.ts +9 -0
- package/dist/browser/components/Details/HashSourceDetails.d.ts.map +1 -0
- package/dist/browser/components/Details/JsonDetails.d.ts +10 -0
- package/dist/browser/components/Details/JsonDetails.d.ts.map +1 -0
- package/dist/browser/components/Details/ValidationDetails/ValidationDetails.d.ts +4 -0
- package/dist/browser/components/Details/ValidationDetails/ValidationDetails.d.ts.map +1 -0
- package/dist/browser/components/Details/ValidationDetails/ValidationDetailsProps.d.ts +7 -0
- package/dist/browser/components/Details/ValidationDetails/ValidationDetailsProps.d.ts.map +1 -0
- package/dist/browser/components/Details/ValidationDetails/index.d.ts +3 -0
- package/dist/browser/components/Details/ValidationDetails/index.d.ts.map +1 -0
- package/dist/browser/components/Details/index.d.ts +5 -0
- package/dist/browser/components/Details/index.d.ts.map +1 -0
- package/dist/browser/components/index.d.ts +2 -0
- package/dist/browser/components/index.d.ts.map +1 -0
- package/dist/browser/index.d.ts +2 -44
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.mjs.map +1 -1
- package/package.json +62 -54
- package/src/components/Details/DataDetails.tsx +11 -5
- package/src/components/Details/Details.stories.tsx +8 -8
- package/src/components/Details/Details.tsx +6 -3
- package/src/components/Details/HashSourceDetails.tsx +17 -5
- package/src/components/Details/JsonDetails.tsx +18 -6
- package/src/components/Details/ValidationDetails/ValidationDetails.stories.tsx +8 -14
- package/src/components/Details/ValidationDetails/ValidationDetails.tsx +4 -2
- package/src/components/Details/ValidationDetails/ValidationDetailsProps.ts +2 -2
- package/xy.config.ts +2 -4
@@ -0,0 +1,11 @@
|
|
1
|
+
import type { Payload } from '@xyo-network/payload-model';
|
2
|
+
import type { PropertyProps } from '@xyo-network/react-property';
|
3
|
+
import type { SizeProp } from '@xyo-network/react-shared';
|
4
|
+
import React from 'react';
|
5
|
+
export type PayloadDataDetailsProps = PropertyProps & {
|
6
|
+
badge?: boolean;
|
7
|
+
payload?: Payload;
|
8
|
+
size?: SizeProp;
|
9
|
+
};
|
10
|
+
export declare const PayloadDataDetails: React.FC<PayloadDataDetailsProps>;
|
11
|
+
//# sourceMappingURL=DataDetails.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"DataDetails.d.ts","sourceRoot":"","sources":["../../../../src/components/Details/DataDetails.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,KAAK,EAAkB,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAEhF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAEzD,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,MAAM,MAAM,uBAAuB,GAAG,aAAa,GAAG;IACpD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,QAAQ,CAAA;CAChB,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA0DhE,CAAA"}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import type { FlexBoxProps } from '@xylabs/react-flexbox';
|
2
|
+
import type { Payload } from '@xyo-network/payload-model';
|
3
|
+
import React from 'react';
|
4
|
+
export type WithPaper<T> = T & {
|
5
|
+
paper: true;
|
6
|
+
};
|
7
|
+
export type WithoutPaper<T> = T & {
|
8
|
+
paper?: false;
|
9
|
+
};
|
10
|
+
export type PayloadDetailsProps = FlexBoxProps & {
|
11
|
+
paper?: boolean;
|
12
|
+
payload?: Payload;
|
13
|
+
};
|
14
|
+
export declare const PayloadDetails: React.ForwardRefExoticComponent<import("@xylabs/react-flexbox").BusyBoxProps & {
|
15
|
+
paper?: boolean;
|
16
|
+
payload?: Payload;
|
17
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
18
|
+
//# sourceMappingURL=Details.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Details.d.ts","sourceRoot":"","sources":["../../../../src/components/Details/Details.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,KAAqB,MAAM,OAAO,CAAA;AAMzC,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,CAAA;AAC9C,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,CAAA;AAEnD,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG;IAC/C,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,cAAc;YAJjB,OAAO;cACL,OAAO;wCAajB,CAAA"}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import type { FlexBoxProps } from '@xylabs/react-flexbox';
|
2
|
+
import type { Payload } from '@xyo-network/payload-model';
|
3
|
+
import React from 'react';
|
4
|
+
export interface PayloadHashSourceDetailsProps extends FlexBoxProps {
|
5
|
+
noTitle?: boolean;
|
6
|
+
payload?: Payload;
|
7
|
+
}
|
8
|
+
export declare const PayloadHashSourceDetails: React.FC<PayloadHashSourceDetailsProps>;
|
9
|
+
//# sourceMappingURL=HashSourceDetails.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"HashSourceDetails.d.ts","sourceRoot":"","sources":["../../../../src/components/Details/HashSourceDetails.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAMzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,WAAW,6BAA8B,SAAQ,YAAY;IACjE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CA0C5E,CAAA"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import type { Payload } from '@xyo-network/payload-model';
|
2
|
+
import type { JsonViewerExProps } from '@xyo-network/react-payload-raw-info';
|
3
|
+
import type { PropertyGroupProps } from '@xyo-network/react-property';
|
4
|
+
import React from 'react';
|
5
|
+
export type PayloadJsonDetailsProps = PropertyGroupProps & {
|
6
|
+
jsonViewProps?: JsonViewerExProps;
|
7
|
+
payload?: Payload;
|
8
|
+
};
|
9
|
+
export declare const PayloadJsonDetails: React.FC<PayloadJsonDetailsProps>;
|
10
|
+
//# sourceMappingURL=JsonDetails.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"JsonDetails.d.ts","sourceRoot":"","sources":["../../../../src/components/Details/JsonDetails.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AAE5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAErE,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,GAAG;IACzD,aAAa,CAAC,EAAE,iBAAiB,CAAA;IACjC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAkChE,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ValidationDetails.d.ts","sourceRoot":"","sources":["../../../../../src/components/Details/ValidationDetails/ValidationDetails.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AAEhF,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CAmC5E,CAAA"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import type { Payload } from '@xyo-network/payload-model';
|
2
|
+
import type { PropertyGroupProps } from '@xyo-network/react-property';
|
3
|
+
export type PayloadValidationDetailsProps = PropertyGroupProps & {
|
4
|
+
skipBody?: boolean;
|
5
|
+
value?: Payload;
|
6
|
+
};
|
7
|
+
//# sourceMappingURL=ValidationDetailsProps.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ValidationDetailsProps.d.ts","sourceRoot":"","sources":["../../../../../src/components/Details/ValidationDetails/ValidationDetailsProps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAErE,MAAM,MAAM,6BAA6B,GAAG,kBAAkB,GAAG;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Details/ValidationDetails/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Details/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,8BAA8B,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA"}
|
package/dist/browser/index.d.ts
CHANGED
@@ -1,44 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
import { SizeProp } from '@xyo-network/react-shared';
|
4
|
-
import React from 'react';
|
5
|
-
import * as _xylabs_react_flexbox from '@xylabs/react-flexbox';
|
6
|
-
import { FlexBoxProps } from '@xylabs/react-flexbox';
|
7
|
-
import { JsonViewerExProps } from '@xyo-network/react-payload-raw-info';
|
8
|
-
|
9
|
-
type PayloadDataDetailsProps = PropertyProps & {
|
10
|
-
badge?: boolean;
|
11
|
-
payload?: Payload;
|
12
|
-
size?: SizeProp;
|
13
|
-
};
|
14
|
-
declare const PayloadDataDetails: React.FC<PayloadDataDetailsProps>;
|
15
|
-
|
16
|
-
type WithPaper<T> = T & {
|
17
|
-
paper: true;
|
18
|
-
};
|
19
|
-
type WithoutPaper<T> = T & {
|
20
|
-
paper?: false;
|
21
|
-
};
|
22
|
-
type PayloadDetailsProps = FlexBoxProps & {
|
23
|
-
paper?: boolean;
|
24
|
-
payload?: Payload;
|
25
|
-
};
|
26
|
-
declare const PayloadDetails: React.ForwardRefExoticComponent<_xylabs_react_flexbox.BusyBoxProps & {
|
27
|
-
paper?: boolean;
|
28
|
-
payload?: Payload;
|
29
|
-
} & React.RefAttributes<HTMLDivElement>>;
|
30
|
-
|
31
|
-
type PayloadJsonDetailsProps = PropertyGroupProps & {
|
32
|
-
jsonViewProps?: JsonViewerExProps;
|
33
|
-
payload?: Payload;
|
34
|
-
};
|
35
|
-
declare const PayloadJsonDetails: React.FC<PayloadJsonDetailsProps>;
|
36
|
-
|
37
|
-
type PayloadValidationDetailsProps = PropertyGroupProps & {
|
38
|
-
skipBody?: boolean;
|
39
|
-
value?: Payload;
|
40
|
-
};
|
41
|
-
|
42
|
-
declare const PayloadValidationDetails: React.FC<PayloadValidationDetailsProps>;
|
43
|
-
|
44
|
-
export { PayloadDataDetails, type PayloadDataDetailsProps, PayloadDetails, type PayloadDetailsProps, PayloadJsonDetails, type PayloadJsonDetailsProps, PayloadValidationDetails, type PayloadValidationDetailsProps, type WithPaper, type WithoutPaper };
|
1
|
+
export * from './components/index.ts';
|
2
|
+
//# sourceMappingURL=index.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/components/Details/DataDetails.tsx","../../src/components/Details/HashSourceDetails.tsx","../../src/components/Details/Details.tsx","../../src/components/Details/JsonDetails.tsx","../../src/components/Details/ValidationDetails/ValidationDetails.tsx"],"sourcesContent":["import { ContentCopy as ContentCopyIcon, Visibility as VisibilityIcon } from '@mui/icons-material'\nimport { Dialog, DialogActions, DialogContent, DialogTitle } from '@mui/material'\nimport { forget } from '@xylabs/forget'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { Payload } from '@xyo-network/payload-model'\nimport { Property, PropertyAction, PropertyProps } from '@xyo-network/react-property'\nimport { SizeProp, usePayloadHash } from '@xyo-network/react-shared'\nimport React, { useState } from 'react'\n\nimport { PayloadHashSourceDetails } from './HashSourceDetails.tsx'\n\nexport type PayloadDataDetailsProps = PropertyProps & {\n badge?: boolean\n payload?: Payload\n size?: SizeProp\n}\n\nexport const PayloadDataDetails: React.FC<PayloadDataDetailsProps> = ({ size, badge, payload, ...props }) => {\n const payloadString = payload ? JSON.stringify(PayloadHasher.hashFields(payload), null, 2) : ''\n\n const [viewSourceOpen, setViewSourceOpen] = useState(false)\n const hash = usePayloadHash(payload)\n\n let elevation = 2\n if (props.paper) {\n elevation += props.elevation ?? 0\n }\n\n const actions: PropertyAction[] = [\n {\n icon: <VisibilityIcon />,\n name: 'View',\n onClick: () => setViewSourceOpen(true),\n },\n {\n icon: <ContentCopyIcon />,\n name: 'Copy',\n onClick: () => forget(navigator.clipboard.writeText(hash ?? '')),\n },\n ]\n\n const onCopy = () => {\n forget(navigator.clipboard.writeText(payloadString))\n }\n\n return (\n <>\n <Property\n titleProps={{ elevation }}\n badge={badge}\n size={size}\n actions={actions}\n title=\"Payload Hash\"\n value={hash ?? '<Unknown>'}\n tip=\"This is the payload hash\"\n {...props}\n />\n <Dialog open={viewSourceOpen} onClose={() => setViewSourceOpen(false)}>\n <DialogTitle>Hash Source</DialogTitle>\n <DialogContent>\n <PayloadHashSourceDetails noTitle payload={payload} />\n </DialogContent>\n <DialogActions>\n <ButtonEx color=\"secondary\" onClick={onCopy}>\n Copy\n </ButtonEx>\n <ButtonEx color=\"secondary\" onClick={() => setViewSourceOpen(false)}>\n Close\n </ButtonEx>\n </DialogActions>\n </Dialog>\n </>\n )\n}\n","import { ContentCopy as ContentCopyIcon } from '@mui/icons-material'\nimport { IconButton, Typography, useTheme } from '@mui/material'\nimport { FlexBoxProps, FlexCol, FlexGrowRow, FlexRow } from '@xylabs/react-flexbox'\nimport { QuickTipButton } from '@xylabs/react-quick-tip-button'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { Payload } from '@xyo-network/payload-model'\nimport React from 'react'\n\nexport interface PayloadHashSourceDetailsProps extends FlexBoxProps {\n noTitle?: boolean\n payload?: Payload\n}\n\nexport const PayloadHashSourceDetails: React.FC<PayloadHashSourceDetailsProps> = ({ noTitle = false, payload, ...props }) => {\n const theme = useTheme()\n const payloadString = payload ? JSON.stringify(PayloadHasher.hashFields(payload), null, 2) : ''\n\n return (\n <FlexCol alignItems=\"stretch\" {...props}>\n {noTitle\n ? null\n : (\n <FlexRow margin={1} justifyContent=\"flex-start\">\n <Typography>Hash Source</Typography>\n <QuickTipButton title=\"Hash Source\">The actual string used to generate the hash (SHA256)</QuickTipButton>\n </FlexRow>\n )}\n <FlexRow>\n <FlexGrowRow background border={1} borderColor={theme.palette.divider} justifyContent=\"start\">\n <Typography padding={2} fontFamily=\"monospace\" variant=\"body1\" sx={{ overflowWrap: 'break-word', wordBreak: 'break-all' }}>\n {payloadString}\n </Typography>\n </FlexGrowRow>\n <IconButton>\n <ContentCopyIcon />\n </IconButton>\n </FlexRow>\n {noTitle\n ? (\n <FlexRow margin={1} justifyContent=\"flex-start\">\n <Typography variant=\"body2\">\n The actual string used to generate the hash (SHA256). This can be used to validate the hash manually.\n </Typography>\n </FlexRow>\n )\n : null}\n </FlexCol>\n )\n}\n","import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { Payload } from '@xyo-network/payload-model'\nimport React, { forwardRef } from 'react'\n\nimport { PayloadDataDetails } from './DataDetails.tsx'\nimport { PayloadJsonDetails } from './JsonDetails.tsx'\nimport { PayloadValidationDetails } from './ValidationDetails/index.ts'\n\nexport type WithPaper<T> = T & { paper: true }\nexport type WithoutPaper<T> = T & { paper?: false }\n\nexport type PayloadDetailsProps = FlexBoxProps & {\n paper?: boolean\n payload?: Payload\n}\n\nexport const PayloadDetails = forwardRef<HTMLDivElement, PayloadDetailsProps>(({ paper, payload, ...props }, ref) => {\n return (\n <FlexCol gap={1} justifyContent=\"flex-start\" alignItems=\"stretch\" marginTop={2} marginBottom={8} ref={ref} {...props}>\n <PayloadDataDetails paper={paper} size=\"large\" badge payload={payload} />\n <PayloadValidationDetails paper={paper} value={payload} />\n <PayloadJsonDetails paper={paper} payload={payload} />\n </FlexCol>\n )\n})\n\nPayloadDetails.displayName = 'PayloadDetails'\n","import { Paper, useMediaQuery, useTheme } from '@mui/material'\nimport { Payload } from '@xyo-network/payload-model'\nimport { JsonViewerEx, JsonViewerExProps } from '@xyo-network/react-payload-raw-info'\nimport { PropertyGroup, PropertyGroupProps } from '@xyo-network/react-property'\nimport React from 'react'\n\nexport type PayloadJsonDetailsProps = PropertyGroupProps & {\n jsonViewProps?: JsonViewerExProps\n payload?: Payload\n}\n\nexport const PayloadJsonDetails: React.FC<PayloadJsonDetailsProps> = ({ jsonViewProps, payload, ...props }) => {\n const { breakpoints, palette } = useTheme()\n const belowSm = useMediaQuery(breakpoints.down('sm'))\n\n let elevation = 2\n if (props.paper) {\n elevation += props.elevation ?? 0\n }\n\n const jsonTheme = palette.mode === 'dark' ? 'dark' : 'light'\n\n return (\n <PropertyGroup titleProps={{ elevation }} title=\"JSON\" tip=\"The raw JSON of the payload\" {...props}>\n <Paper square variant=\"elevation\" style={{ overflow: 'hidden', padding: '16px', width: '100%' }}>\n <JsonViewerEx\n groupArraysAfterLength={20}\n style={{ backgroundColor: undefined, overflow: 'hidden' }}\n value={payload}\n enableClipboard\n theme={jsonTheme}\n collapseStringsAfterLength={belowSm ? 24 : 32}\n {...jsonViewProps}\n />\n </Paper>\n </PropertyGroup>\n )\n}\n","import { Typography } from '@mui/material'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport { usePromise } from '@xylabs/react-promise'\nimport { PayloadValidator } from '@xyo-network/payload-validator'\nimport { Property, PropertyGroup } from '@xyo-network/react-property'\nimport { SchemaProperty } from '@xyo-network/react-schema'\nimport React from 'react'\n\nimport { PayloadValidationDetailsProps } from './ValidationDetailsProps.ts'\n\nexport const PayloadValidationDetails: React.FC<PayloadValidationDetailsProps> = ({ skipBody = false, value, ...props }) => {\n const [validateErrors] = usePromise(async () => (value ? await new PayloadValidator(value).validate() : undefined), [value])\n\n const bodyErrors = skipBody ? [] : (validateErrors ?? [])\n const errors: Error[] = [...bodyErrors]\n\n let elevation = 2\n if (props.paper) {\n elevation += props.elevation ?? 0\n }\n\n return (\n <PropertyGroup titleProps={{ elevation }} title=\"Validation\" tip=\"The results from validating the payload\" {...props}>\n <Property\n titleProps={{ elevation }}\n flexGrow={1}\n title=\"Valid\"\n value={errors.length === 0 ? 'True' : 'False'}\n tip={\n errors.length > 0\n ? (\n <FlexCol>\n {errors.map((error, index) => {\n return <Typography key={index}>{error.toString()}</Typography>\n })}\n </FlexCol>\n )\n : <Typography>No Errors</Typography>\n }\n />\n {value?.schema && <SchemaProperty flexGrow={1} titleProps={{ elevation }} value={value.schema} />}\n </PropertyGroup>\n )\n}\n"],"mappings":"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","names":["ContentCopy","ContentCopyIcon","Visibility","VisibilityIcon","Dialog","DialogActions","DialogContent","DialogTitle","forget","ButtonEx","PayloadHasher","Property","usePayloadHash","React","useState","ContentCopy","ContentCopyIcon","IconButton","Typography","useTheme","FlexCol","FlexGrowRow","FlexRow","QuickTipButton","PayloadHasher","React","PayloadHashSourceDetails","noTitle","payload","props","theme","useTheme","payloadString","JSON","stringify","PayloadHasher","hashFields","FlexCol","alignItems","FlexRow","margin","justifyContent","Typography","QuickTipButton","title","FlexGrowRow","background","border","borderColor","palette","divider","padding","fontFamily","variant","sx","overflowWrap","wordBreak","IconButton","ContentCopyIcon","PayloadDataDetails","size","badge","payload","props","payloadString","JSON","stringify","PayloadHasher","hashFields","viewSourceOpen","setViewSourceOpen","useState","hash","usePayloadHash","elevation","paper","actions","icon","React","VisibilityIcon","name","onClick","ContentCopyIcon","forget","navigator","clipboard","writeText","onCopy","Property","titleProps","title","value","tip","Dialog","open","onClose","DialogTitle","DialogContent","PayloadHashSourceDetails","noTitle","DialogActions","ButtonEx","color","FlexCol","React","forwardRef","Paper","useMediaQuery","useTheme","JsonViewerEx","PropertyGroup","React","PayloadJsonDetails","jsonViewProps","payload","props","breakpoints","palette","useTheme","belowSm","useMediaQuery","down","elevation","paper","jsonTheme","mode","React","PropertyGroup","titleProps","title","tip","Paper","square","variant","style","overflow","padding","width","JsonViewerEx","groupArraysAfterLength","backgroundColor","undefined","value","enableClipboard","theme","collapseStringsAfterLength","Typography","FlexCol","usePromise","PayloadValidator","Property","PropertyGroup","SchemaProperty","React","PayloadValidationDetails","skipBody","value","props","validateErrors","usePromise","PayloadValidator","validate","undefined","bodyErrors","errors","elevation","paper","React","PropertyGroup","titleProps","title","tip","Property","flexGrow","length","FlexCol","map","error","index","Typography","key","toString","schema","SchemaProperty","PayloadDetails","forwardRef","paper","payload","props","ref","React","FlexCol","gap","justifyContent","alignItems","marginTop","marginBottom","PayloadDataDetails","size","badge","PayloadValidationDetails","value","PayloadJsonDetails","displayName"]}
|
1
|
+
{"version":3,"sources":["../../src/components/Details/DataDetails.tsx","../../src/components/Details/HashSourceDetails.tsx","../../src/components/Details/Details.tsx","../../src/components/Details/JsonDetails.tsx","../../src/components/Details/ValidationDetails/ValidationDetails.tsx"],"sourcesContent":["import { ContentCopy as ContentCopyIcon, Visibility as VisibilityIcon } from '@mui/icons-material'\nimport {\n Dialog, DialogActions, DialogContent, DialogTitle,\n} from '@mui/material'\nimport { forget } from '@xylabs/forget'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport type { Payload } from '@xyo-network/payload-model'\nimport type { PropertyAction, PropertyProps } from '@xyo-network/react-property'\nimport { Property } from '@xyo-network/react-property'\nimport type { SizeProp } from '@xyo-network/react-shared'\nimport { usePayloadHash } from '@xyo-network/react-shared'\nimport React, { useState } from 'react'\n\nimport { PayloadHashSourceDetails } from './HashSourceDetails.tsx'\n\nexport type PayloadDataDetailsProps = PropertyProps & {\n badge?: boolean\n payload?: Payload\n size?: SizeProp\n}\n\nexport const PayloadDataDetails: React.FC<PayloadDataDetailsProps> = ({\n size, badge, payload, ...props\n}) => {\n const payloadString = payload ? JSON.stringify(PayloadHasher.hashFields(payload), null, 2) : ''\n\n const [viewSourceOpen, setViewSourceOpen] = useState(false)\n const hash = usePayloadHash(payload)\n\n let elevation = 2\n if (props.paper) {\n elevation += props.elevation ?? 0\n }\n\n const actions: PropertyAction[] = [\n {\n icon: <VisibilityIcon />,\n name: 'View',\n onClick: () => setViewSourceOpen(true),\n },\n {\n icon: <ContentCopyIcon />,\n name: 'Copy',\n onClick: () => forget(navigator.clipboard.writeText(hash ?? '')),\n },\n ]\n\n const onCopy = () => {\n forget(navigator.clipboard.writeText(payloadString))\n }\n\n return (\n <>\n <Property\n titleProps={{ elevation }}\n badge={badge}\n size={size}\n actions={actions}\n title=\"Payload Hash\"\n value={hash ?? '<Unknown>'}\n tip=\"This is the payload hash\"\n {...props}\n />\n <Dialog open={viewSourceOpen} onClose={() => setViewSourceOpen(false)}>\n <DialogTitle>Hash Source</DialogTitle>\n <DialogContent>\n <PayloadHashSourceDetails noTitle payload={payload} />\n </DialogContent>\n <DialogActions>\n <ButtonEx color=\"secondary\" onClick={onCopy}>\n Copy\n </ButtonEx>\n <ButtonEx color=\"secondary\" onClick={() => setViewSourceOpen(false)}>\n Close\n </ButtonEx>\n </DialogActions>\n </Dialog>\n </>\n )\n}\n","import { ContentCopy as ContentCopyIcon } from '@mui/icons-material'\nimport {\n IconButton, Typography, useTheme,\n} from '@mui/material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport {\n FlexCol, FlexGrowRow, FlexRow,\n} from '@xylabs/react-flexbox'\nimport { QuickTipButton } from '@xylabs/react-quick-tip-button'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport type { Payload } from '@xyo-network/payload-model'\nimport React from 'react'\n\nexport interface PayloadHashSourceDetailsProps extends FlexBoxProps {\n noTitle?: boolean\n payload?: Payload\n}\n\nexport const PayloadHashSourceDetails: React.FC<PayloadHashSourceDetailsProps> = ({\n noTitle = false, payload, ...props\n}) => {\n const theme = useTheme()\n const payloadString = payload ? JSON.stringify(PayloadHasher.hashFields(payload), null, 2) : ''\n\n return (\n <FlexCol alignItems=\"stretch\" {...props}>\n {noTitle\n ? null\n : (\n <FlexRow margin={1} justifyContent=\"flex-start\">\n <Typography>Hash Source</Typography>\n <QuickTipButton title=\"Hash Source\">The actual string used to generate the hash (SHA256)</QuickTipButton>\n </FlexRow>\n )}\n <FlexRow>\n <FlexGrowRow background border={1} borderColor={theme.palette.divider} justifyContent=\"start\">\n <Typography\n padding={2}\n fontFamily=\"monospace\"\n variant=\"body1\"\n sx={{ overflowWrap: 'break-word', wordBreak: 'break-all' }}\n >\n {payloadString}\n </Typography>\n </FlexGrowRow>\n <IconButton>\n <ContentCopyIcon />\n </IconButton>\n </FlexRow>\n {noTitle\n ? (\n <FlexRow margin={1} justifyContent=\"flex-start\">\n <Typography variant=\"body2\">\n The actual string used to generate the hash (SHA256). This can be used to validate the hash manually.\n </Typography>\n </FlexRow>\n )\n : null}\n </FlexCol>\n )\n}\n","import type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport type { Payload } from '@xyo-network/payload-model'\nimport React, { forwardRef } from 'react'\n\nimport { PayloadDataDetails } from './DataDetails.tsx'\nimport { PayloadJsonDetails } from './JsonDetails.tsx'\nimport { PayloadValidationDetails } from './ValidationDetails/index.ts'\n\nexport type WithPaper<T> = T & { paper: true }\nexport type WithoutPaper<T> = T & { paper?: false }\n\nexport type PayloadDetailsProps = FlexBoxProps & {\n paper?: boolean\n payload?: Payload\n}\n\nexport const PayloadDetails = forwardRef<HTMLDivElement, PayloadDetailsProps>(({\n paper, payload, ...props\n}, ref) => {\n return (\n <FlexCol gap={1} justifyContent=\"flex-start\" alignItems=\"stretch\" marginTop={2} marginBottom={8} ref={ref} {...props}>\n <PayloadDataDetails paper={paper} size=\"large\" badge payload={payload} />\n <PayloadValidationDetails paper={paper} value={payload} />\n <PayloadJsonDetails paper={paper} payload={payload} />\n </FlexCol>\n )\n})\n\nPayloadDetails.displayName = 'PayloadDetails'\n","import {\n Paper, useMediaQuery, useTheme,\n} from '@mui/material'\nimport type { Payload } from '@xyo-network/payload-model'\nimport type { JsonViewerExProps } from '@xyo-network/react-payload-raw-info'\nimport { JsonViewerEx } from '@xyo-network/react-payload-raw-info'\nimport type { PropertyGroupProps } from '@xyo-network/react-property'\nimport { PropertyGroup } from '@xyo-network/react-property'\nimport React from 'react'\n\nexport type PayloadJsonDetailsProps = PropertyGroupProps & {\n jsonViewProps?: JsonViewerExProps\n payload?: Payload\n}\n\nexport const PayloadJsonDetails: React.FC<PayloadJsonDetailsProps> = ({\n jsonViewProps, payload, ...props\n}) => {\n const { breakpoints, palette } = useTheme()\n const belowSm = useMediaQuery(breakpoints.down('sm'))\n\n let elevation = 2\n if (props.paper) {\n elevation += props.elevation ?? 0\n }\n\n const jsonTheme = palette.mode === 'dark' ? 'dark' : 'light'\n\n return (\n <PropertyGroup titleProps={{ elevation }} title=\"JSON\" tip=\"The raw JSON of the payload\" {...props}>\n <Paper\n square\n variant=\"elevation\"\n style={{\n overflow: 'hidden', padding: '16px', width: '100%',\n }}\n >\n <JsonViewerEx\n groupArraysAfterLength={20}\n style={{ backgroundColor: undefined, overflow: 'hidden' }}\n value={payload}\n enableClipboard\n theme={jsonTheme}\n collapseStringsAfterLength={belowSm ? 24 : 32}\n {...jsonViewProps}\n />\n </Paper>\n </PropertyGroup>\n )\n}\n","import { Typography } from '@mui/material'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport { usePromise } from '@xylabs/react-promise'\nimport { PayloadValidator } from '@xyo-network/payload-validator'\nimport { Property, PropertyGroup } from '@xyo-network/react-property'\nimport { SchemaProperty } from '@xyo-network/react-schema'\nimport React from 'react'\n\nimport type { PayloadValidationDetailsProps } from './ValidationDetailsProps.ts'\n\nexport const PayloadValidationDetails: React.FC<PayloadValidationDetailsProps> = ({\n skipBody = false, value, ...props\n}) => {\n const [validateErrors] = usePromise(async () => (value ? await new PayloadValidator(value).validate() : undefined), [value])\n\n const bodyErrors = skipBody ? [] : (validateErrors ?? [])\n const errors: Error[] = [...bodyErrors]\n\n let elevation = 2\n if (props.paper) {\n elevation += props.elevation ?? 0\n }\n\n return (\n <PropertyGroup titleProps={{ elevation }} title=\"Validation\" tip=\"The results from validating the payload\" {...props}>\n <Property\n titleProps={{ elevation }}\n flexGrow={1}\n title=\"Valid\"\n value={errors.length === 0 ? 'True' : 'False'}\n tip={\n errors.length > 0\n ? (\n <FlexCol>\n {errors.map((error, index) => {\n return <Typography key={index}>{error.toString()}</Typography>\n })}\n </FlexCol>\n )\n : <Typography>No Errors</Typography>\n }\n />\n {value?.schema && <SchemaProperty flexGrow={1} titleProps={{ elevation }} value={value.schema} />}\n </PropertyGroup>\n )\n}\n"],"mappings":"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","names":["ContentCopy","ContentCopyIcon","Visibility","VisibilityIcon","Dialog","DialogActions","DialogContent","DialogTitle","forget","ButtonEx","PayloadHasher","Property","usePayloadHash","React","useState","ContentCopy","ContentCopyIcon","IconButton","Typography","useTheme","FlexCol","FlexGrowRow","FlexRow","QuickTipButton","PayloadHasher","React","PayloadHashSourceDetails","noTitle","payload","props","theme","useTheme","payloadString","JSON","stringify","PayloadHasher","hashFields","FlexCol","alignItems","FlexRow","margin","justifyContent","Typography","QuickTipButton","title","FlexGrowRow","background","border","borderColor","palette","divider","padding","fontFamily","variant","sx","overflowWrap","wordBreak","IconButton","ContentCopyIcon","PayloadDataDetails","size","badge","payload","props","payloadString","JSON","stringify","PayloadHasher","hashFields","viewSourceOpen","setViewSourceOpen","useState","hash","usePayloadHash","elevation","paper","actions","icon","React","VisibilityIcon","name","onClick","ContentCopyIcon","forget","navigator","clipboard","writeText","onCopy","Property","titleProps","title","value","tip","Dialog","open","onClose","DialogTitle","DialogContent","PayloadHashSourceDetails","noTitle","DialogActions","ButtonEx","color","FlexCol","React","forwardRef","Paper","useMediaQuery","useTheme","JsonViewerEx","PropertyGroup","React","PayloadJsonDetails","jsonViewProps","payload","props","breakpoints","palette","useTheme","belowSm","useMediaQuery","down","elevation","paper","jsonTheme","mode","React","PropertyGroup","titleProps","title","tip","Paper","square","variant","style","overflow","padding","width","JsonViewerEx","groupArraysAfterLength","backgroundColor","undefined","value","enableClipboard","theme","collapseStringsAfterLength","Typography","FlexCol","usePromise","PayloadValidator","Property","PropertyGroup","SchemaProperty","React","PayloadValidationDetails","skipBody","value","props","validateErrors","usePromise","PayloadValidator","validate","undefined","bodyErrors","errors","elevation","paper","React","PropertyGroup","titleProps","title","tip","Property","flexGrow","length","FlexCol","map","error","index","Typography","key","toString","schema","SchemaProperty","PayloadDetails","forwardRef","paper","payload","props","ref","React","FlexCol","gap","justifyContent","alignItems","marginTop","marginBottom","PayloadDataDetails","size","badge","PayloadValidationDetails","value","PayloadJsonDetails","displayName"]}
|
package/package.json
CHANGED
@@ -1,34 +1,75 @@
|
|
1
1
|
{
|
2
2
|
"name": "@xyo-network/react-payload-details",
|
3
|
+
"version": "3.0.3",
|
4
|
+
"description": "Common React library for all XYO projects that use React",
|
5
|
+
"keywords": [
|
6
|
+
"xyo",
|
7
|
+
"utility",
|
8
|
+
"typescript",
|
9
|
+
"react"
|
10
|
+
],
|
11
|
+
"homepage": "https://xyo.network",
|
12
|
+
"bugs": {
|
13
|
+
"url": "git+https://github.com/XYOracleNetwork/sdk-xyo-react-js/issues",
|
14
|
+
"email": "support@xyo.network"
|
15
|
+
},
|
16
|
+
"repository": {
|
17
|
+
"type": "git",
|
18
|
+
"url": "git+https://github.com/XYOracleNetwork/sdk-xyo-react-js.git"
|
19
|
+
},
|
20
|
+
"license": "LGPL-3.0-only",
|
3
21
|
"author": {
|
4
|
-
"email": "support@xyo.network",
|
5
22
|
"name": "XYO Development Team",
|
23
|
+
"email": "support@xyo.network",
|
6
24
|
"url": "https://xyo.network"
|
7
25
|
},
|
8
|
-
"
|
9
|
-
|
10
|
-
|
26
|
+
"sideEffects": false,
|
27
|
+
"type": "module",
|
28
|
+
"exports": {
|
29
|
+
".": {
|
30
|
+
"import": {
|
31
|
+
"types": "./dist/browser/index.d.ts",
|
32
|
+
"default": "./dist/browser/index.mjs"
|
33
|
+
},
|
34
|
+
"types": "./dist/browser/index.d.ts",
|
35
|
+
"default": "./dist/browser/index.mjs"
|
36
|
+
},
|
37
|
+
"./package.json": "./package.json"
|
38
|
+
},
|
39
|
+
"module": "dist/browser/index.mjs",
|
40
|
+
"types": "dist/browser/index.d.ts",
|
41
|
+
"scripts": {
|
42
|
+
"license": "yarn license-checker --exclude \"MIT, ISC, Apache-2.0, BSD, BSD-2-Clause, CC-BY-4.0, Unlicense, CC-BY-3.0, CC0-1.0\"",
|
43
|
+
"lint-pkg": "npmPkgJsonLint ."
|
11
44
|
},
|
12
45
|
"dependencies": {
|
13
|
-
"@xylabs/forget": "^4.0.
|
14
|
-
"@xylabs/react-button": "^4.0.
|
15
|
-
"@xylabs/react-flexbox": "^4.0.
|
16
|
-
"@xylabs/react-promise": "^4.0.
|
17
|
-
"@xylabs/react-quick-tip-button": "^4.0.
|
18
|
-
"@xyo-network/hash": "^3.0.
|
19
|
-
"@xyo-network/payload-model": "^3.0.
|
20
|
-
"@xyo-network/payload-validator": "^3.0.
|
21
|
-
"@xyo-network/react-payload-raw-info": "^3.0.
|
22
|
-
"@xyo-network/react-property": "^3.0.
|
23
|
-
"@xyo-network/react-schema": "^3.0.
|
24
|
-
"@xyo-network/react-shared": "^3.0.
|
46
|
+
"@xylabs/forget": "^4.0.5",
|
47
|
+
"@xylabs/react-button": "^4.0.3",
|
48
|
+
"@xylabs/react-flexbox": "^4.0.3",
|
49
|
+
"@xylabs/react-promise": "^4.0.3",
|
50
|
+
"@xylabs/react-quick-tip-button": "^4.0.3",
|
51
|
+
"@xyo-network/hash": "^3.0.15",
|
52
|
+
"@xyo-network/payload-model": "^3.0.15",
|
53
|
+
"@xyo-network/payload-validator": "^3.0.15",
|
54
|
+
"@xyo-network/react-payload-raw-info": "^3.0.3",
|
55
|
+
"@xyo-network/react-property": "^3.0.3",
|
56
|
+
"@xyo-network/react-schema": "^3.0.3",
|
57
|
+
"@xyo-network/react-shared": "^3.0.3"
|
25
58
|
},
|
26
59
|
"devDependencies": {
|
60
|
+
"@emotion/react": "^11.13.3",
|
61
|
+
"@emotion/styled": "^11.13.0",
|
62
|
+
"@mui/icons-material": "^5.16.7",
|
63
|
+
"@mui/material": "^5.16.7",
|
64
|
+
"@mui/styles": "^5.16.7",
|
27
65
|
"@storybook/react": "^8.2.9",
|
28
|
-
"@xylabs/ts-scripts-yarn3": "^4.0.
|
29
|
-
"@xylabs/tsconfig-react": "^4.0.
|
30
|
-
"@xyo-network/react-storybook": "^3.0.
|
31
|
-
"react
|
66
|
+
"@xylabs/ts-scripts-yarn3": "^4.0.7",
|
67
|
+
"@xylabs/tsconfig-react": "^4.0.7",
|
68
|
+
"@xyo-network/react-storybook": "^3.0.3",
|
69
|
+
"react": "^18.3.1",
|
70
|
+
"react-dom": "^18.3.1",
|
71
|
+
"react-router-dom": "^6.26.1",
|
72
|
+
"storybook": "^8.2.9",
|
32
73
|
"typescript": "^5.5.4"
|
33
74
|
},
|
34
75
|
"peerDependencies": {
|
@@ -40,41 +81,8 @@
|
|
40
81
|
"react": "^18",
|
41
82
|
"react-dom": "^18"
|
42
83
|
},
|
43
|
-
"description": "Common React library for all XYO projects that use React",
|
44
|
-
"docs": "dist/docs.json",
|
45
|
-
"exports": {
|
46
|
-
".": {
|
47
|
-
"import": {
|
48
|
-
"types": "./dist/browser/index.d.ts",
|
49
|
-
"default": "./dist/browser/index.mjs"
|
50
|
-
},
|
51
|
-
"types": "./dist/browser/index.d.ts",
|
52
|
-
"default": "./dist/browser/index.mjs"
|
53
|
-
},
|
54
|
-
"./package.json": "./package.json"
|
55
|
-
},
|
56
|
-
"module": "dist/browser/index.mjs",
|
57
|
-
"homepage": "https://xyo.network",
|
58
|
-
"keywords": [
|
59
|
-
"xyo",
|
60
|
-
"utility",
|
61
|
-
"typescript",
|
62
|
-
"react"
|
63
|
-
],
|
64
|
-
"license": "LGPL-3.0-only",
|
65
84
|
"publishConfig": {
|
66
85
|
"access": "public"
|
67
86
|
},
|
68
|
-
"
|
69
|
-
"type": "git",
|
70
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js.git"
|
71
|
-
},
|
72
|
-
"scripts": {
|
73
|
-
"lint-pkg": "npmPkgJsonLint .",
|
74
|
-
"license": "yarn license-checker --exclude \"MIT, ISC, Apache-2.0, BSD, BSD-2-Clause, CC-BY-4.0, Unlicense, CC-BY-3.0, CC0-1.0\""
|
75
|
-
},
|
76
|
-
"sideEffects": false,
|
77
|
-
"types": "dist/browser/index.d.ts",
|
78
|
-
"version": "3.0.1",
|
79
|
-
"type": "module"
|
87
|
+
"docs": "dist/docs.json"
|
80
88
|
}
|
@@ -1,11 +1,15 @@
|
|
1
1
|
import { ContentCopy as ContentCopyIcon, Visibility as VisibilityIcon } from '@mui/icons-material'
|
2
|
-
import {
|
2
|
+
import {
|
3
|
+
Dialog, DialogActions, DialogContent, DialogTitle,
|
4
|
+
} from '@mui/material'
|
3
5
|
import { forget } from '@xylabs/forget'
|
4
6
|
import { ButtonEx } from '@xylabs/react-button'
|
5
7
|
import { PayloadHasher } from '@xyo-network/hash'
|
6
|
-
import { Payload } from '@xyo-network/payload-model'
|
7
|
-
import {
|
8
|
-
import {
|
8
|
+
import type { Payload } from '@xyo-network/payload-model'
|
9
|
+
import type { PropertyAction, PropertyProps } from '@xyo-network/react-property'
|
10
|
+
import { Property } from '@xyo-network/react-property'
|
11
|
+
import type { SizeProp } from '@xyo-network/react-shared'
|
12
|
+
import { usePayloadHash } from '@xyo-network/react-shared'
|
9
13
|
import React, { useState } from 'react'
|
10
14
|
|
11
15
|
import { PayloadHashSourceDetails } from './HashSourceDetails.tsx'
|
@@ -16,7 +20,9 @@ export type PayloadDataDetailsProps = PropertyProps & {
|
|
16
20
|
size?: SizeProp
|
17
21
|
}
|
18
22
|
|
19
|
-
export const PayloadDataDetails: React.FC<PayloadDataDetailsProps> = ({
|
23
|
+
export const PayloadDataDetails: React.FC<PayloadDataDetailsProps> = ({
|
24
|
+
size, badge, payload, ...props
|
25
|
+
}) => {
|
20
26
|
const payloadString = payload ? JSON.stringify(PayloadHasher.hashFields(payload), null, 2) : ''
|
21
27
|
|
22
28
|
const [viewSourceOpen, setViewSourceOpen] = useState(false)
|
@@ -1,18 +1,16 @@
|
|
1
|
-
import { Meta, StoryFn } from '@storybook/react'
|
1
|
+
import type { Meta, StoryFn } from '@storybook/react'
|
2
2
|
import { sampleIdPayload, samplePayloadFromBuilder } from '@xyo-network/react-storybook'
|
3
3
|
import React from 'react'
|
4
|
-
import {
|
4
|
+
import {
|
5
|
+
BrowserRouter, Route, Routes,
|
6
|
+
} from 'react-router-dom'
|
5
7
|
|
6
8
|
import { PayloadDetails } from './Details.tsx'
|
7
9
|
|
8
10
|
const StorybookEntry = {
|
9
11
|
argTypes: {},
|
10
12
|
component: PayloadDetails,
|
11
|
-
parameters: {
|
12
|
-
docs: {
|
13
|
-
page: null,
|
14
|
-
},
|
15
|
-
},
|
13
|
+
parameters: { docs: { page: null } },
|
16
14
|
title: 'payload/Details',
|
17
15
|
} as Meta<typeof PayloadDetails>
|
18
16
|
|
@@ -49,6 +47,8 @@ WithBuilderSamplePaper.args = { paper: true, payload: samplePayloadFromBuilder }
|
|
49
47
|
const WithArchiveLinkPaper = Template.bind({})
|
50
48
|
WithArchiveLinkPaper.args = { paper: true, payload: samplePayloadFromBuilder }
|
51
49
|
|
52
|
-
export {
|
50
|
+
export {
|
51
|
+
Default, DefaultPaper, WithArchiveLink, WithArchiveLinkPaper, WithBuilderSample, WithBuilderSamplePaper, WithSample, WithSamplePaper,
|
52
|
+
}
|
53
53
|
|
54
54
|
export default StorybookEntry
|
@@ -1,5 +1,6 @@
|
|
1
|
-
import { FlexBoxProps
|
2
|
-
import {
|
1
|
+
import type { FlexBoxProps } from '@xylabs/react-flexbox'
|
2
|
+
import { FlexCol } from '@xylabs/react-flexbox'
|
3
|
+
import type { Payload } from '@xyo-network/payload-model'
|
3
4
|
import React, { forwardRef } from 'react'
|
4
5
|
|
5
6
|
import { PayloadDataDetails } from './DataDetails.tsx'
|
@@ -14,7 +15,9 @@ export type PayloadDetailsProps = FlexBoxProps & {
|
|
14
15
|
payload?: Payload
|
15
16
|
}
|
16
17
|
|
17
|
-
export const PayloadDetails = forwardRef<HTMLDivElement, PayloadDetailsProps>(({
|
18
|
+
export const PayloadDetails = forwardRef<HTMLDivElement, PayloadDetailsProps>(({
|
19
|
+
paper, payload, ...props
|
20
|
+
}, ref) => {
|
18
21
|
return (
|
19
22
|
<FlexCol gap={1} justifyContent="flex-start" alignItems="stretch" marginTop={2} marginBottom={8} ref={ref} {...props}>
|
20
23
|
<PayloadDataDetails paper={paper} size="large" badge payload={payload} />
|
@@ -1,9 +1,14 @@
|
|
1
1
|
import { ContentCopy as ContentCopyIcon } from '@mui/icons-material'
|
2
|
-
import {
|
3
|
-
|
2
|
+
import {
|
3
|
+
IconButton, Typography, useTheme,
|
4
|
+
} from '@mui/material'
|
5
|
+
import type { FlexBoxProps } from '@xylabs/react-flexbox'
|
6
|
+
import {
|
7
|
+
FlexCol, FlexGrowRow, FlexRow,
|
8
|
+
} from '@xylabs/react-flexbox'
|
4
9
|
import { QuickTipButton } from '@xylabs/react-quick-tip-button'
|
5
10
|
import { PayloadHasher } from '@xyo-network/hash'
|
6
|
-
import { Payload } from '@xyo-network/payload-model'
|
11
|
+
import type { Payload } from '@xyo-network/payload-model'
|
7
12
|
import React from 'react'
|
8
13
|
|
9
14
|
export interface PayloadHashSourceDetailsProps extends FlexBoxProps {
|
@@ -11,7 +16,9 @@ export interface PayloadHashSourceDetailsProps extends FlexBoxProps {
|
|
11
16
|
payload?: Payload
|
12
17
|
}
|
13
18
|
|
14
|
-
export const PayloadHashSourceDetails: React.FC<PayloadHashSourceDetailsProps> = ({
|
19
|
+
export const PayloadHashSourceDetails: React.FC<PayloadHashSourceDetailsProps> = ({
|
20
|
+
noTitle = false, payload, ...props
|
21
|
+
}) => {
|
15
22
|
const theme = useTheme()
|
16
23
|
const payloadString = payload ? JSON.stringify(PayloadHasher.hashFields(payload), null, 2) : ''
|
17
24
|
|
@@ -27,7 +34,12 @@ export const PayloadHashSourceDetails: React.FC<PayloadHashSourceDetailsProps> =
|
|
27
34
|
)}
|
28
35
|
<FlexRow>
|
29
36
|
<FlexGrowRow background border={1} borderColor={theme.palette.divider} justifyContent="start">
|
30
|
-
<Typography
|
37
|
+
<Typography
|
38
|
+
padding={2}
|
39
|
+
fontFamily="monospace"
|
40
|
+
variant="body1"
|
41
|
+
sx={{ overflowWrap: 'break-word', wordBreak: 'break-all' }}
|
42
|
+
>
|
31
43
|
{payloadString}
|
32
44
|
</Typography>
|
33
45
|
</FlexGrowRow>
|
@@ -1,7 +1,11 @@
|
|
1
|
-
import {
|
2
|
-
|
3
|
-
|
4
|
-
import {
|
1
|
+
import {
|
2
|
+
Paper, useMediaQuery, useTheme,
|
3
|
+
} from '@mui/material'
|
4
|
+
import type { Payload } from '@xyo-network/payload-model'
|
5
|
+
import type { JsonViewerExProps } from '@xyo-network/react-payload-raw-info'
|
6
|
+
import { JsonViewerEx } from '@xyo-network/react-payload-raw-info'
|
7
|
+
import type { PropertyGroupProps } from '@xyo-network/react-property'
|
8
|
+
import { PropertyGroup } from '@xyo-network/react-property'
|
5
9
|
import React from 'react'
|
6
10
|
|
7
11
|
export type PayloadJsonDetailsProps = PropertyGroupProps & {
|
@@ -9,7 +13,9 @@ export type PayloadJsonDetailsProps = PropertyGroupProps & {
|
|
9
13
|
payload?: Payload
|
10
14
|
}
|
11
15
|
|
12
|
-
export const PayloadJsonDetails: React.FC<PayloadJsonDetailsProps> = ({
|
16
|
+
export const PayloadJsonDetails: React.FC<PayloadJsonDetailsProps> = ({
|
17
|
+
jsonViewProps, payload, ...props
|
18
|
+
}) => {
|
13
19
|
const { breakpoints, palette } = useTheme()
|
14
20
|
const belowSm = useMediaQuery(breakpoints.down('sm'))
|
15
21
|
|
@@ -22,7 +28,13 @@ export const PayloadJsonDetails: React.FC<PayloadJsonDetailsProps> = ({ jsonView
|
|
22
28
|
|
23
29
|
return (
|
24
30
|
<PropertyGroup titleProps={{ elevation }} title="JSON" tip="The raw JSON of the payload" {...props}>
|
25
|
-
<Paper
|
31
|
+
<Paper
|
32
|
+
square
|
33
|
+
variant="elevation"
|
34
|
+
style={{
|
35
|
+
overflow: 'hidden', padding: '16px', width: '100%',
|
36
|
+
}}
|
37
|
+
>
|
26
38
|
<JsonViewerEx
|
27
39
|
groupArraysAfterLength={20}
|
28
40
|
style={{ backgroundColor: undefined, overflow: 'hidden' }}
|
@@ -1,26 +1,18 @@
|
|
1
|
-
import { Meta, StoryFn } from '@storybook/react'
|
2
|
-
import { Payload } from '@xyo-network/payload-model'
|
1
|
+
import type { Meta, StoryFn } from '@storybook/react'
|
2
|
+
import type { Payload } from '@xyo-network/payload-model'
|
3
3
|
import { sampleIdPayload } from '@xyo-network/react-storybook'
|
4
4
|
import React from 'react'
|
5
5
|
import { BrowserRouter } from 'react-router-dom'
|
6
6
|
|
7
7
|
import { PayloadDetails } from '../Details.tsx'
|
8
8
|
import { PayloadValidationDetails } from './ValidationDetails.tsx'
|
9
|
-
import { PayloadValidationDetailsProps } from './ValidationDetailsProps.ts'
|
9
|
+
import type { PayloadValidationDetailsProps } from './ValidationDetailsProps.ts'
|
10
10
|
|
11
11
|
const StorybookEntry: Meta = {
|
12
12
|
argTypes: {},
|
13
|
-
args: {
|
14
|
-
value: {
|
15
|
-
schema: 'network.xyo.schema',
|
16
|
-
},
|
17
|
-
},
|
13
|
+
args: { value: { schema: 'network.xyo.schema' } },
|
18
14
|
component: PayloadDetails,
|
19
|
-
parameters: {
|
20
|
-
docs: {
|
21
|
-
page: null,
|
22
|
-
},
|
23
|
-
},
|
15
|
+
parameters: { docs: { page: null } },
|
24
16
|
title: 'payload/ValidationDetails',
|
25
17
|
}
|
26
18
|
|
@@ -56,6 +48,8 @@ SkipBody.args = {
|
|
56
48
|
} as Payload,
|
57
49
|
}
|
58
50
|
|
59
|
-
export {
|
51
|
+
export {
|
52
|
+
Default, SkipBody, WithErrorsInToolTip,
|
53
|
+
}
|
60
54
|
|
61
55
|
export default StorybookEntry
|
@@ -6,9 +6,11 @@ import { Property, PropertyGroup } from '@xyo-network/react-property'
|
|
6
6
|
import { SchemaProperty } from '@xyo-network/react-schema'
|
7
7
|
import React from 'react'
|
8
8
|
|
9
|
-
import { PayloadValidationDetailsProps } from './ValidationDetailsProps.ts'
|
9
|
+
import type { PayloadValidationDetailsProps } from './ValidationDetailsProps.ts'
|
10
10
|
|
11
|
-
export const PayloadValidationDetails: React.FC<PayloadValidationDetailsProps> = ({
|
11
|
+
export const PayloadValidationDetails: React.FC<PayloadValidationDetailsProps> = ({
|
12
|
+
skipBody = false, value, ...props
|
13
|
+
}) => {
|
12
14
|
const [validateErrors] = usePromise(async () => (value ? await new PayloadValidator(value).validate() : undefined), [value])
|
13
15
|
|
14
16
|
const bodyErrors = skipBody ? [] : (validateErrors ?? [])
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { Payload } from '@xyo-network/payload-model'
|
2
|
-
import { PropertyGroupProps } from '@xyo-network/react-property'
|
1
|
+
import type { Payload } from '@xyo-network/payload-model'
|
2
|
+
import type { PropertyGroupProps } from '@xyo-network/react-property'
|
3
3
|
|
4
4
|
export type PayloadValidationDetailsProps = PropertyGroupProps & {
|
5
5
|
skipBody?: boolean
|
package/xy.config.ts
CHANGED