@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.
Files changed (96) hide show
  1. package/LICENSE +165 -0
  2. package/README.md +70 -0
  3. package/dist/cjs/components/Details/DataDetails.d.ts +11 -0
  4. package/dist/cjs/components/Details/DataDetails.d.ts.map +1 -0
  5. package/dist/cjs/components/Details/DataDetails.js +43 -0
  6. package/dist/cjs/components/Details/DataDetails.js.map +1 -0
  7. package/dist/cjs/components/Details/Details.d.ts +15 -0
  8. package/dist/cjs/components/Details/Details.d.ts.map +1 -0
  9. package/dist/cjs/components/Details/Details.js +15 -0
  10. package/dist/cjs/components/Details/Details.js.map +1 -0
  11. package/dist/cjs/components/Details/HashSourceDetails.d.ts +9 -0
  12. package/dist/cjs/components/Details/HashSourceDetails.d.ts.map +1 -0
  13. package/dist/cjs/components/Details/HashSourceDetails.js +19 -0
  14. package/dist/cjs/components/Details/HashSourceDetails.js.map +1 -0
  15. package/dist/cjs/components/Details/JsonDetails.d.ts +10 -0
  16. package/dist/cjs/components/Details/JsonDetails.d.ts.map +1 -0
  17. package/dist/cjs/components/Details/JsonDetails.js +24 -0
  18. package/dist/cjs/components/Details/JsonDetails.js.map +1 -0
  19. package/dist/cjs/components/Details/ValidationDetails/ValidationDetails.d.ts +4 -0
  20. package/dist/cjs/components/Details/ValidationDetails/ValidationDetails.d.ts.map +1 -0
  21. package/dist/cjs/components/Details/ValidationDetails/ValidationDetails.js +26 -0
  22. package/dist/cjs/components/Details/ValidationDetails/ValidationDetails.js.map +1 -0
  23. package/dist/cjs/components/Details/ValidationDetails/ValidationDetailsProps.d.ts +8 -0
  24. package/dist/cjs/components/Details/ValidationDetails/ValidationDetailsProps.d.ts.map +1 -0
  25. package/dist/cjs/components/Details/ValidationDetails/ValidationDetailsProps.js +3 -0
  26. package/dist/cjs/components/Details/ValidationDetails/ValidationDetailsProps.js.map +1 -0
  27. package/dist/cjs/components/Details/ValidationDetails/index.d.ts +3 -0
  28. package/dist/cjs/components/Details/ValidationDetails/index.d.ts.map +1 -0
  29. package/dist/cjs/components/Details/ValidationDetails/index.js +6 -0
  30. package/dist/cjs/components/Details/ValidationDetails/index.js.map +1 -0
  31. package/dist/cjs/components/Details/index.d.ts +5 -0
  32. package/dist/cjs/components/Details/index.d.ts.map +1 -0
  33. package/dist/cjs/components/Details/index.js +8 -0
  34. package/dist/cjs/components/Details/index.js.map +1 -0
  35. package/dist/cjs/components/index.d.ts +2 -0
  36. package/dist/cjs/components/index.d.ts.map +1 -0
  37. package/dist/cjs/components/index.js +5 -0
  38. package/dist/cjs/components/index.js.map +1 -0
  39. package/dist/cjs/index.d.ts +2 -0
  40. package/dist/cjs/index.d.ts.map +1 -0
  41. package/dist/cjs/index.js +5 -0
  42. package/dist/cjs/index.js.map +1 -0
  43. package/dist/docs.json +944 -0
  44. package/dist/esm/components/Details/DataDetails.d.ts +11 -0
  45. package/dist/esm/components/Details/DataDetails.d.ts.map +1 -0
  46. package/dist/esm/components/Details/DataDetails.js +35 -0
  47. package/dist/esm/components/Details/DataDetails.js.map +1 -0
  48. package/dist/esm/components/Details/Details.d.ts +15 -0
  49. package/dist/esm/components/Details/Details.d.ts.map +1 -0
  50. package/dist/esm/components/Details/Details.js +9 -0
  51. package/dist/esm/components/Details/Details.js.map +1 -0
  52. package/dist/esm/components/Details/HashSourceDetails.d.ts +9 -0
  53. package/dist/esm/components/Details/HashSourceDetails.d.ts.map +1 -0
  54. package/dist/esm/components/Details/HashSourceDetails.js +12 -0
  55. package/dist/esm/components/Details/HashSourceDetails.js.map +1 -0
  56. package/dist/esm/components/Details/JsonDetails.d.ts +10 -0
  57. package/dist/esm/components/Details/JsonDetails.d.ts.map +1 -0
  58. package/dist/esm/components/Details/JsonDetails.js +17 -0
  59. package/dist/esm/components/Details/JsonDetails.js.map +1 -0
  60. package/dist/esm/components/Details/ValidationDetails/ValidationDetails.d.ts +4 -0
  61. package/dist/esm/components/Details/ValidationDetails/ValidationDetails.d.ts.map +1 -0
  62. package/dist/esm/components/Details/ValidationDetails/ValidationDetails.js +19 -0
  63. package/dist/esm/components/Details/ValidationDetails/ValidationDetails.js.map +1 -0
  64. package/dist/esm/components/Details/ValidationDetails/ValidationDetailsProps.d.ts +8 -0
  65. package/dist/esm/components/Details/ValidationDetails/ValidationDetailsProps.d.ts.map +1 -0
  66. package/dist/esm/components/Details/ValidationDetails/ValidationDetailsProps.js +2 -0
  67. package/dist/esm/components/Details/ValidationDetails/ValidationDetailsProps.js.map +1 -0
  68. package/dist/esm/components/Details/ValidationDetails/index.d.ts +3 -0
  69. package/dist/esm/components/Details/ValidationDetails/index.d.ts.map +1 -0
  70. package/dist/esm/components/Details/ValidationDetails/index.js +3 -0
  71. package/dist/esm/components/Details/ValidationDetails/index.js.map +1 -0
  72. package/dist/esm/components/Details/index.d.ts +5 -0
  73. package/dist/esm/components/Details/index.d.ts.map +1 -0
  74. package/dist/esm/components/Details/index.js +5 -0
  75. package/dist/esm/components/Details/index.js.map +1 -0
  76. package/dist/esm/components/index.d.ts +2 -0
  77. package/dist/esm/components/index.d.ts.map +1 -0
  78. package/dist/esm/components/index.js +2 -0
  79. package/dist/esm/components/index.js.map +1 -0
  80. package/dist/esm/index.d.ts +2 -0
  81. package/dist/esm/index.d.ts.map +1 -0
  82. package/dist/esm/index.js +2 -0
  83. package/dist/esm/index.js.map +1 -0
  84. package/package.json +80 -0
  85. package/src/components/Details/DataDetails.tsx +74 -0
  86. package/src/components/Details/Details.stories.tsx +62 -0
  87. package/src/components/Details/Details.tsx +24 -0
  88. package/src/components/Details/HashSourceDetails.tsx +43 -0
  89. package/src/components/Details/JsonDetails.tsx +43 -0
  90. package/src/components/Details/ValidationDetails/ValidationDetails.stories.tsx +55 -0
  91. package/src/components/Details/ValidationDetails/ValidationDetails.tsx +42 -0
  92. package/src/components/Details/ValidationDetails/ValidationDetailsProps.ts +8 -0
  93. package/src/components/Details/ValidationDetails/index.ts +2 -0
  94. package/src/components/Details/index.ts +4 -0
  95. package/src/components/index.ts +1 -0
  96. 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,2 @@
1
+ export * from './ValidationDetails'
2
+ export * from './ValidationDetailsProps'
@@ -0,0 +1,4 @@
1
+ export * from './DataDetails'
2
+ export * from './Details'
3
+ export * from './JsonDetails'
4
+ export * from './ValidationDetails'
@@ -0,0 +1 @@
1
+ export * from './Details'
package/src/index.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './components'