@xyo-network/react-payload-details 2.32.0-rc.11
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/LICENSE +165 -0
- package/README.md +70 -0
- package/dist/cjs/components/Details/DataDetails.d.ts +11 -0
- package/dist/cjs/components/Details/DataDetails.d.ts.map +1 -0
- package/dist/cjs/components/Details/DataDetails.js +43 -0
- package/dist/cjs/components/Details/DataDetails.js.map +1 -0
- package/dist/cjs/components/Details/Details.d.ts +15 -0
- package/dist/cjs/components/Details/Details.d.ts.map +1 -0
- package/dist/cjs/components/Details/Details.js +15 -0
- package/dist/cjs/components/Details/Details.js.map +1 -0
- package/dist/cjs/components/Details/HashSourceDetails.d.ts +9 -0
- package/dist/cjs/components/Details/HashSourceDetails.d.ts.map +1 -0
- package/dist/cjs/components/Details/HashSourceDetails.js +19 -0
- package/dist/cjs/components/Details/HashSourceDetails.js.map +1 -0
- package/dist/cjs/components/Details/JsonDetails.d.ts +10 -0
- package/dist/cjs/components/Details/JsonDetails.d.ts.map +1 -0
- package/dist/cjs/components/Details/JsonDetails.js +24 -0
- package/dist/cjs/components/Details/JsonDetails.js.map +1 -0
- package/dist/cjs/components/Details/ValidationDetails/ValidationDetails.d.ts +4 -0
- package/dist/cjs/components/Details/ValidationDetails/ValidationDetails.d.ts.map +1 -0
- package/dist/cjs/components/Details/ValidationDetails/ValidationDetails.js +26 -0
- package/dist/cjs/components/Details/ValidationDetails/ValidationDetails.js.map +1 -0
- package/dist/cjs/components/Details/ValidationDetails/ValidationDetailsProps.d.ts +8 -0
- package/dist/cjs/components/Details/ValidationDetails/ValidationDetailsProps.d.ts.map +1 -0
- package/dist/cjs/components/Details/ValidationDetails/ValidationDetailsProps.js +3 -0
- package/dist/cjs/components/Details/ValidationDetails/ValidationDetailsProps.js.map +1 -0
- package/dist/cjs/components/Details/ValidationDetails/index.d.ts +3 -0
- package/dist/cjs/components/Details/ValidationDetails/index.d.ts.map +1 -0
- package/dist/cjs/components/Details/ValidationDetails/index.js +6 -0
- package/dist/cjs/components/Details/ValidationDetails/index.js.map +1 -0
- package/dist/cjs/components/Details/index.d.ts +5 -0
- package/dist/cjs/components/Details/index.d.ts.map +1 -0
- package/dist/cjs/components/Details/index.js +8 -0
- package/dist/cjs/components/Details/index.js.map +1 -0
- package/dist/cjs/components/index.d.ts +2 -0
- package/dist/cjs/components/index.d.ts.map +1 -0
- package/dist/cjs/components/index.js +5 -0
- package/dist/cjs/components/index.js.map +1 -0
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +5 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/docs.json +944 -0
- package/dist/esm/components/Details/DataDetails.d.ts +11 -0
- package/dist/esm/components/Details/DataDetails.d.ts.map +1 -0
- package/dist/esm/components/Details/DataDetails.js +35 -0
- package/dist/esm/components/Details/DataDetails.js.map +1 -0
- package/dist/esm/components/Details/Details.d.ts +15 -0
- package/dist/esm/components/Details/Details.d.ts.map +1 -0
- package/dist/esm/components/Details/Details.js +9 -0
- package/dist/esm/components/Details/Details.js.map +1 -0
- package/dist/esm/components/Details/HashSourceDetails.d.ts +9 -0
- package/dist/esm/components/Details/HashSourceDetails.d.ts.map +1 -0
- package/dist/esm/components/Details/HashSourceDetails.js +12 -0
- package/dist/esm/components/Details/HashSourceDetails.js.map +1 -0
- package/dist/esm/components/Details/JsonDetails.d.ts +10 -0
- package/dist/esm/components/Details/JsonDetails.d.ts.map +1 -0
- package/dist/esm/components/Details/JsonDetails.js +17 -0
- package/dist/esm/components/Details/JsonDetails.js.map +1 -0
- package/dist/esm/components/Details/ValidationDetails/ValidationDetails.d.ts +4 -0
- package/dist/esm/components/Details/ValidationDetails/ValidationDetails.d.ts.map +1 -0
- package/dist/esm/components/Details/ValidationDetails/ValidationDetails.js +19 -0
- package/dist/esm/components/Details/ValidationDetails/ValidationDetails.js.map +1 -0
- package/dist/esm/components/Details/ValidationDetails/ValidationDetailsProps.d.ts +8 -0
- package/dist/esm/components/Details/ValidationDetails/ValidationDetailsProps.d.ts.map +1 -0
- package/dist/esm/components/Details/ValidationDetails/ValidationDetailsProps.js +2 -0
- package/dist/esm/components/Details/ValidationDetails/ValidationDetailsProps.js.map +1 -0
- package/dist/esm/components/Details/ValidationDetails/index.d.ts +3 -0
- package/dist/esm/components/Details/ValidationDetails/index.d.ts.map +1 -0
- package/dist/esm/components/Details/ValidationDetails/index.js +3 -0
- package/dist/esm/components/Details/ValidationDetails/index.js.map +1 -0
- package/dist/esm/components/Details/index.d.ts +5 -0
- package/dist/esm/components/Details/index.d.ts.map +1 -0
- package/dist/esm/components/Details/index.js +5 -0
- package/dist/esm/components/Details/index.js.map +1 -0
- package/dist/esm/components/index.d.ts +2 -0
- package/dist/esm/components/index.d.ts.map +1 -0
- package/dist/esm/components/index.js +2 -0
- package/dist/esm/components/index.js.map +1 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -0
- package/package.json +80 -0
- package/src/components/Details/DataDetails.tsx +74 -0
- package/src/components/Details/Details.stories.tsx +62 -0
- package/src/components/Details/Details.tsx +24 -0
- package/src/components/Details/HashSourceDetails.tsx +43 -0
- package/src/components/Details/JsonDetails.tsx +43 -0
- package/src/components/Details/ValidationDetails/ValidationDetails.stories.tsx +55 -0
- package/src/components/Details/ValidationDetails/ValidationDetails.tsx +42 -0
- package/src/components/Details/ValidationDetails/ValidationDetailsProps.ts +8 -0
- package/src/components/Details/ValidationDetails/index.ts +2 -0
- package/src/components/Details/index.ts +4 -0
- package/src/components/index.ts +1 -0
- package/src/index.ts +1 -0
@@ -0,0 +1,43 @@
|
|
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={20}
|
32
|
+
style={{ backgroundColor: undefined, overflow: 'hidden' }}
|
33
|
+
src={payload}
|
34
|
+
enableClipboard
|
35
|
+
theme={jsonTheme}
|
36
|
+
collapseStringsAfterLength={belowSm ? 24 : 32}
|
37
|
+
{...jsonViewProps}
|
38
|
+
/>
|
39
|
+
</Suspense>
|
40
|
+
</Paper>
|
41
|
+
</PropertyGroup>
|
42
|
+
)
|
43
|
+
}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
import { ComponentStory, Meta } from '@storybook/react'
|
2
|
+
import { samplePayload, useAppThemeDecorator } from '@xyo-network/react-storybook'
|
3
|
+
import { BrowserRouter } from 'react-router-dom'
|
4
|
+
|
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: [useAppThemeDecorator],
|
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 }
|
33
|
+
|
34
|
+
const WithViewSchemaLink = Template.bind({})
|
35
|
+
WithViewSchemaLink.args = {
|
36
|
+
viewSchemaUrl: 'http://beta.explore.xyo.network/6fe3f745b1179fefa74cc3c7eab58321bee1c9ca9e34d9585467364cc5d3bbe2/?huri=huri',
|
37
|
+
}
|
38
|
+
|
39
|
+
const WithErrorsInToolTip = Template.bind({})
|
40
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
41
|
+
// @ts-ignore
|
42
|
+
WithErrorsInToolTip.args = { value: { ...samplePayload, ...{ _hash: '6fe3f745b1179fefa74cc3c7eab58321bee1c9ca9e34d9585467364cc5d3bbe2' } } }
|
43
|
+
|
44
|
+
const SkipBody = Template.bind({})
|
45
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
46
|
+
// @ts-ignore
|
47
|
+
SkipBody.args = {
|
48
|
+
skipBody: true,
|
49
|
+
value: { _hash: '44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a', _timestamp: new Date().getTime(), schema: 'network.xyo.test' },
|
50
|
+
}
|
51
|
+
|
52
|
+
export { Default, SkipBody, WithErrorsInToolTip, WithViewSchemaLink }
|
53
|
+
|
54
|
+
// eslint-disable-next-line import/no-default-export
|
55
|
+
export default StorybookEntry
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import { Typography } from '@mui/material'
|
2
|
+
import { FlexCol } from '@xylabs/react-flexbox'
|
3
|
+
import { XyoPayloadValidator } from '@xyo-network/payload'
|
4
|
+
import { Property, PropertyGroup } from '@xyo-network/react-property'
|
5
|
+
import { SchemaProperty } from '@xyo-network/react-schema'
|
6
|
+
|
7
|
+
import { PayloadValidationDetailsProps } from './ValidationDetailsProps'
|
8
|
+
|
9
|
+
export const PayloadValidationDetails: React.FC<PayloadValidationDetailsProps> = ({ viewSchemaUrl, skipBody = false, value, ...props }) => {
|
10
|
+
const validator = value ? new XyoPayloadValidator(value) : undefined
|
11
|
+
|
12
|
+
const bodyErrors = skipBody ? [] : validator?.body.validate() ?? []
|
13
|
+
const errors: Error[] = [...bodyErrors]
|
14
|
+
|
15
|
+
let elevation = 2
|
16
|
+
if (props.paper) {
|
17
|
+
elevation += props.elevation ?? 0
|
18
|
+
}
|
19
|
+
|
20
|
+
return (
|
21
|
+
<PropertyGroup titleProps={{ elevation }} title="Validation" tip="The results from validating the payload" {...props}>
|
22
|
+
<Property
|
23
|
+
titleProps={{ elevation }}
|
24
|
+
flexGrow={1}
|
25
|
+
title="Valid"
|
26
|
+
value={errors.length === 0 ? 'True' : 'False'}
|
27
|
+
tip={
|
28
|
+
errors.length > 0 ? (
|
29
|
+
<FlexCol>
|
30
|
+
{errors.map((error, index) => {
|
31
|
+
return <Typography key={index}>{error.toString()}</Typography>
|
32
|
+
})}
|
33
|
+
</FlexCol>
|
34
|
+
) : (
|
35
|
+
<Typography>No Errors</Typography>
|
36
|
+
)
|
37
|
+
}
|
38
|
+
/>
|
39
|
+
{value?.schema && <SchemaProperty flexGrow={1} titleProps={{ elevation }} value={value.schema} viewSchemaUrl={viewSchemaUrl} />}
|
40
|
+
</PropertyGroup>
|
41
|
+
)
|
42
|
+
}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import { XyoPayloadWithPartialMeta } from '@xyo-network/payload'
|
2
|
+
import { PropertyGroupProps } from '@xyo-network/react-property'
|
3
|
+
|
4
|
+
export type PayloadValidationDetailsProps = PropertyGroupProps & {
|
5
|
+
skipBody?: boolean
|
6
|
+
value?: XyoPayloadWithPartialMeta
|
7
|
+
viewSchemaUrl?: string
|
8
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './Details'
|
package/src/index.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
export * from './components'
|