@xyo-network/react-embed 2.28.8 → 2.28.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 (129) hide show
  1. package/dist/cjs/components/XyoEmbedPlugin.d.ts.map +1 -1
  2. package/dist/cjs/components/XyoEmbedPlugin.js +3 -3
  3. package/dist/cjs/components/XyoEmbedPlugin.js.map +1 -1
  4. package/dist/cjs/components/controls/{ControlWrap.d.ts → EmbedFormControl.d.ts} +3 -3
  5. package/dist/cjs/components/controls/EmbedFormControl.d.ts.map +1 -0
  6. package/dist/cjs/components/controls/{ControlWrap.js → EmbedFormControl.js} +4 -4
  7. package/dist/cjs/components/controls/EmbedFormControl.js.map +1 -0
  8. package/dist/cjs/components/controls/ListModeSelect.js +2 -2
  9. package/dist/cjs/components/controls/ListModeSelect.js.map +1 -1
  10. package/dist/cjs/components/controls/RenderSelect.d.ts +2 -1
  11. package/dist/cjs/components/controls/RenderSelect.d.ts.map +1 -1
  12. package/dist/cjs/components/controls/RenderSelect.js +2 -2
  13. package/dist/cjs/components/controls/RenderSelect.js.map +1 -1
  14. package/dist/cjs/components/controls/index.d.ts +1 -1
  15. package/dist/cjs/components/controls/index.d.ts.map +1 -1
  16. package/dist/cjs/components/controls/index.js +1 -1
  17. package/dist/cjs/components/controls/index.js.map +1 -1
  18. package/dist/cjs/components/embed-card/EmbedCardHeader.js +1 -1
  19. package/dist/cjs/components/embed-card/EmbedCardHeader.js.map +1 -1
  20. package/dist/cjs/components/embed-card/EmbedCardResolver.d.ts +1 -1
  21. package/dist/cjs/components/embed-card/EmbedCardResolver.d.ts.map +1 -1
  22. package/dist/cjs/components/embed-card/EmbedCardResolver.js +5 -5
  23. package/dist/cjs/components/embed-card/EmbedCardResolver.js.map +1 -1
  24. package/dist/cjs/components/embed-card/EmbedPluginCard.d.ts.map +1 -1
  25. package/dist/cjs/components/embed-card/EmbedPluginCard.js +6 -3
  26. package/dist/cjs/components/embed-card/EmbedPluginCard.js.map +1 -1
  27. package/dist/cjs/components/embed-card/ValidatePayload.d.ts +1 -1
  28. package/dist/cjs/components/embed-card/ValidatePayload.d.ts.map +1 -1
  29. package/dist/cjs/components/embed-card/ValidatePayload.js +4 -4
  30. package/dist/cjs/components/embed-card/ValidatePayload.js.map +1 -1
  31. package/dist/cjs/components/embed-card/ValidatePlugins.d.ts +2 -1
  32. package/dist/cjs/components/embed-card/ValidatePlugins.d.ts.map +1 -1
  33. package/dist/cjs/components/embed-card/ValidatePlugins.js +6 -4
  34. package/dist/cjs/components/embed-card/ValidatePlugins.js.map +1 -1
  35. package/dist/cjs/components/embed-card/error-handling/EmbedCardApiErrorRenderer.d.ts +10 -0
  36. package/dist/cjs/components/embed-card/error-handling/EmbedCardApiErrorRenderer.d.ts.map +1 -0
  37. package/dist/cjs/components/embed-card/error-handling/EmbedCardApiErrorRenderer.js +18 -0
  38. package/dist/cjs/components/embed-card/error-handling/EmbedCardApiErrorRenderer.js.map +1 -0
  39. package/dist/cjs/components/embed-card/error-handling/EmbedErrorCard.d.ts +15 -0
  40. package/dist/cjs/components/embed-card/error-handling/EmbedErrorCard.d.ts.map +1 -0
  41. package/dist/cjs/components/embed-card/error-handling/EmbedErrorCard.js +16 -0
  42. package/dist/cjs/components/embed-card/error-handling/EmbedErrorCard.js.map +1 -0
  43. package/dist/cjs/components/embed-card/error-handling/index.d.ts +3 -0
  44. package/dist/cjs/components/embed-card/error-handling/index.d.ts.map +1 -0
  45. package/dist/cjs/components/embed-card/error-handling/index.js +6 -0
  46. package/dist/cjs/components/embed-card/error-handling/index.js.map +1 -0
  47. package/dist/cjs/components/embed-card/index.d.ts +1 -0
  48. package/dist/cjs/components/embed-card/index.d.ts.map +1 -1
  49. package/dist/cjs/components/embed-card/index.js +1 -0
  50. package/dist/cjs/components/embed-card/index.js.map +1 -1
  51. package/dist/cjs/contexts/XyoEmbedPluginContext/State.d.ts +1 -0
  52. package/dist/cjs/contexts/XyoEmbedPluginContext/State.d.ts.map +1 -1
  53. package/dist/docs.json +2 -2
  54. package/dist/esm/components/XyoEmbedPlugin.d.ts.map +1 -1
  55. package/dist/esm/components/XyoEmbedPlugin.js +5 -5
  56. package/dist/esm/components/XyoEmbedPlugin.js.map +1 -1
  57. package/dist/esm/components/controls/{ControlWrap.d.ts → EmbedFormControl.d.ts} +3 -3
  58. package/dist/esm/components/controls/EmbedFormControl.d.ts.map +1 -0
  59. package/dist/esm/components/controls/{ControlWrap.js → EmbedFormControl.js} +2 -2
  60. package/dist/esm/components/controls/EmbedFormControl.js.map +1 -0
  61. package/dist/esm/components/controls/ListModeSelect.js +2 -2
  62. package/dist/esm/components/controls/ListModeSelect.js.map +1 -1
  63. package/dist/esm/components/controls/RenderSelect.d.ts +2 -1
  64. package/dist/esm/components/controls/RenderSelect.d.ts.map +1 -1
  65. package/dist/esm/components/controls/RenderSelect.js +2 -2
  66. package/dist/esm/components/controls/RenderSelect.js.map +1 -1
  67. package/dist/esm/components/controls/index.d.ts +1 -1
  68. package/dist/esm/components/controls/index.d.ts.map +1 -1
  69. package/dist/esm/components/controls/index.js +1 -1
  70. package/dist/esm/components/controls/index.js.map +1 -1
  71. package/dist/esm/components/embed-card/EmbedCardHeader.js +1 -1
  72. package/dist/esm/components/embed-card/EmbedCardHeader.js.map +1 -1
  73. package/dist/esm/components/embed-card/EmbedCardResolver.d.ts +1 -1
  74. package/dist/esm/components/embed-card/EmbedCardResolver.d.ts.map +1 -1
  75. package/dist/esm/components/embed-card/EmbedCardResolver.js +3 -3
  76. package/dist/esm/components/embed-card/EmbedCardResolver.js.map +1 -1
  77. package/dist/esm/components/embed-card/EmbedPluginCard.d.ts.map +1 -1
  78. package/dist/esm/components/embed-card/EmbedPluginCard.js +3 -2
  79. package/dist/esm/components/embed-card/EmbedPluginCard.js.map +1 -1
  80. package/dist/esm/components/embed-card/ValidatePayload.d.ts +1 -1
  81. package/dist/esm/components/embed-card/ValidatePayload.d.ts.map +1 -1
  82. package/dist/esm/components/embed-card/ValidatePayload.js +4 -4
  83. package/dist/esm/components/embed-card/ValidatePayload.js.map +1 -1
  84. package/dist/esm/components/embed-card/ValidatePlugins.d.ts +2 -1
  85. package/dist/esm/components/embed-card/ValidatePlugins.d.ts.map +1 -1
  86. package/dist/esm/components/embed-card/ValidatePlugins.js +2 -2
  87. package/dist/esm/components/embed-card/ValidatePlugins.js.map +1 -1
  88. package/dist/esm/components/embed-card/error-handling/EmbedCardApiErrorRenderer.d.ts +10 -0
  89. package/dist/esm/components/embed-card/error-handling/EmbedCardApiErrorRenderer.d.ts.map +1 -0
  90. package/dist/esm/components/embed-card/error-handling/EmbedCardApiErrorRenderer.js +11 -0
  91. package/dist/esm/components/embed-card/error-handling/EmbedCardApiErrorRenderer.js.map +1 -0
  92. package/dist/esm/components/embed-card/error-handling/EmbedErrorCard.d.ts +15 -0
  93. package/dist/esm/components/embed-card/error-handling/EmbedErrorCard.d.ts.map +1 -0
  94. package/dist/esm/components/embed-card/error-handling/EmbedErrorCard.js +11 -0
  95. package/dist/esm/components/embed-card/error-handling/EmbedErrorCard.js.map +1 -0
  96. package/dist/esm/components/embed-card/error-handling/index.d.ts +3 -0
  97. package/dist/esm/components/embed-card/error-handling/index.d.ts.map +1 -0
  98. package/dist/esm/components/embed-card/error-handling/index.js +3 -0
  99. package/dist/esm/components/embed-card/error-handling/index.js.map +1 -0
  100. package/dist/esm/components/embed-card/index.d.ts +1 -0
  101. package/dist/esm/components/embed-card/index.d.ts.map +1 -1
  102. package/dist/esm/components/embed-card/index.js +1 -0
  103. package/dist/esm/components/embed-card/index.js.map +1 -1
  104. package/dist/esm/contexts/XyoEmbedPluginContext/State.d.ts +1 -0
  105. package/dist/esm/contexts/XyoEmbedPluginContext/State.d.ts.map +1 -1
  106. package/package.json +11 -11
  107. package/src/components/XyoEmbedPlugin.tsx +23 -21
  108. package/src/components/controls/{ControlWrap.tsx → EmbedFormControl.tsx} +2 -2
  109. package/src/components/controls/ListModeSelect.tsx +3 -3
  110. package/src/components/controls/RenderSelect.tsx +5 -5
  111. package/src/components/controls/index.ts +1 -1
  112. package/src/components/embed-card/EmbedCardHeader.tsx +1 -1
  113. package/src/components/embed-card/EmbedCardResolver.tsx +5 -4
  114. package/src/components/embed-card/EmbedPluginCard.tsx +6 -3
  115. package/src/components/embed-card/ValidatePayload.tsx +4 -4
  116. package/src/components/embed-card/ValidatePlugins.tsx +3 -3
  117. package/src/components/embed-card/error-handling/EmbedCardApiErrorRenderer.tsx +27 -0
  118. package/src/components/embed-card/error-handling/EmbedErrorCard.tsx +41 -0
  119. package/src/components/embed-card/error-handling/index.ts +2 -0
  120. package/src/components/embed-card/index.ts +1 -0
  121. package/src/components/embed-plugin-stories/XyoEmbedPlugin.examples.stories.tsx +28 -0
  122. package/src/components/{XyoEmbedPlugin.stories.tsx → embed-plugin-stories/XyoEmbedPlugin.states.stories.tsx} +24 -34
  123. package/src/components/{payload.stories.ts → embed-plugin-stories/payload.stories.ts} +0 -0
  124. package/src/components/embed-plugin-stories/shared.stories.tsx +22 -0
  125. package/src/contexts/XyoEmbedPluginContext/State.ts +1 -0
  126. package/dist/cjs/components/controls/ControlWrap.d.ts.map +0 -1
  127. package/dist/cjs/components/controls/ControlWrap.js.map +0 -1
  128. package/dist/esm/components/controls/ControlWrap.d.ts.map +0 -1
  129. package/dist/esm/components/controls/ControlWrap.js.map +0 -1
@@ -1,12 +1,12 @@
1
1
  import { FormControl, FormControlProps, InputLabel } from '@mui/material'
2
2
  import { WithChildren } from '@xylabs/react-shared'
3
3
 
4
- interface EmbedControlWrapProps extends FormControlProps {
4
+ interface EmbedFormControlProps extends FormControlProps {
5
5
  formId?: string
6
6
  formLabel?: string
7
7
  }
8
8
 
9
- export const EmbedControlWrap: React.FC<WithChildren<EmbedControlWrapProps>> = ({ formId, formLabel, children, ...props }) => {
9
+ export const EmbedFormControl: React.FC<WithChildren<EmbedFormControlProps>> = ({ formId, formLabel, children, ...props }) => {
10
10
  return (
11
11
  <FormControl {...props}>
12
12
  <InputLabel id={formId}>{formLabel}</InputLabel>
@@ -1,7 +1,7 @@
1
1
  import { MenuItem, Select, SelectProps } from '@mui/material'
2
2
  import { ListMode, useListMode } from '@xyo-network/react-shared'
3
3
 
4
- import { EmbedControlWrap } from './ControlWrap'
4
+ import { EmbedFormControl } from './EmbedFormControl'
5
5
 
6
6
  const listModeSelectId = 'listmode-select-id'
7
7
  const listModeSelectLabel = 'List Mode'
@@ -32,8 +32,8 @@ export const ListModeSelect: React.FC<SelectProps<ListMode>> = (props) => {
32
32
 
33
33
  export const ListModeSelectFormControl: React.FC<SelectProps<ListMode>> = (props) => {
34
34
  return (
35
- <EmbedControlWrap formId={listModeSelectId} formLabel={listModeSelectLabel}>
35
+ <EmbedFormControl formId={listModeSelectId} formLabel={listModeSelectLabel}>
36
36
  <ListModeSelect size="small" label={listModeSelectLabel} labelId={listModeSelectId} {...props} />
37
- </EmbedControlWrap>
37
+ </EmbedFormControl>
38
38
  )
39
39
  }
@@ -1,15 +1,15 @@
1
- import { MenuItem, Select } from '@mui/material'
1
+ import { MenuItem, Select, SelectProps } from '@mui/material'
2
2
 
3
3
  import { useXyoEmbedPluginState } from '../../contexts'
4
- import { EmbedControlWrap } from './ControlWrap'
4
+ import { EmbedFormControl } from './EmbedFormControl'
5
5
 
6
6
  const renderSelectId = 'render-select-id'
7
7
  const renderSelectLabel = 'Renderer'
8
8
 
9
- export const EmbedRenderSelect: React.FC = (props) => {
9
+ export const EmbedRenderSelect: React.FC<SelectProps> = (props) => {
10
10
  const { activePlugin, setActivePlugin, plugins } = useXyoEmbedPluginState()
11
11
  return (
12
- <EmbedControlWrap formId={renderSelectId} formLabel={renderSelectLabel}>
12
+ <EmbedFormControl formId={renderSelectId} formLabel={renderSelectLabel}>
13
13
  <Select size="small" value={activePlugin?.name} {...props}>
14
14
  {plugins?.map((plugin) => (
15
15
  <MenuItem value={plugin.name} key={plugin.name} onClick={() => setActivePlugin?.(plugin)}>
@@ -17,6 +17,6 @@ export const EmbedRenderSelect: React.FC = (props) => {
17
17
  </MenuItem>
18
18
  ))}
19
19
  </Select>
20
- </EmbedControlWrap>
20
+ </EmbedFormControl>
21
21
  )
22
22
  }
@@ -1,3 +1,3 @@
1
- export * from './ControlWrap'
1
+ export * from './EmbedFormControl'
2
2
  export * from './ListModeSelect'
3
3
  export * from './RenderSelect'
@@ -22,7 +22,7 @@ export const EmbedCardHeader: React.FC<CardHeaderProps> = () => {
22
22
  )
23
23
  }
24
24
  action={
25
- <FlexRow>
25
+ <FlexRow flexWrap="wrap" columnGap={0.5}>
26
26
  {payload?.timestamp ? (
27
27
  hideTimestamp && hideRefreshButton ? (
28
28
  ''
@@ -1,27 +1,28 @@
1
1
  import { useTheme } from '@mui/material'
2
2
  import { FlexBoxProps, FlexGrowCol } from '@xylabs/react-flexbox'
3
3
  import { WithChildren } from '@xylabs/react-shared'
4
- import { XyoApiErrorRender } from '@xyo-network/react-auth-service'
5
4
  import { ResultLoader } from '@xyo-network/react-webapp'
6
5
 
7
6
  import { useRefreshPayload, useResolvePayload } from '../../contexts'
7
+ import { EmbedCardApiErrorRenderer } from './error-handling'
8
8
 
9
- export const EmbedCardResolver: React.FC<WithChildren<FlexBoxProps>> = ({ children, ...props }) => {
9
+ export const EmbedCardResolverFlexBox: React.FC<WithChildren<FlexBoxProps>> = ({ children, ...props }) => {
10
10
  const { payload, notFound, huriApiError } = useResolvePayload()
11
11
  const { refreshPayload } = useRefreshPayload()
12
12
  const theme = useTheme()
13
13
 
14
14
  return (
15
15
  <ResultLoader searchResult={payload} notFound={!!notFound} apiError={huriApiError}>
16
- <XyoApiErrorRender apiError={huriApiError}>
16
+ <EmbedCardApiErrorRenderer apiError={huriApiError}>
17
17
  <FlexGrowCol
18
+ alignItems="stretch"
18
19
  busy={Boolean(!refreshPayload && payload)}
19
20
  busyCircularProps={{ style: { alignItems: 'start', paddingTop: theme.spacing(2), zIndex: 2 } }}
20
21
  {...props}
21
22
  >
22
23
  {children}
23
24
  </FlexGrowCol>
24
- </XyoApiErrorRender>
25
+ </EmbedCardApiErrorRenderer>
25
26
  </ResultLoader>
26
27
  )
27
28
  }
@@ -6,19 +6,22 @@ import { useResolvePayload, useXyoEmbedPluginState } from '../../contexts'
6
6
  import { EmbedRenderSelect, ListModeSelectFormControl } from '../controls'
7
7
  import { EmbedCardHeader } from './EmbedCardHeader'
8
8
 
9
- export const EmbedPluginCard: React.FC<CardProps> = (props) => {
9
+ export const EmbedPluginCard: React.FC<CardProps> = ({ ...props }) => {
10
10
  const { payload } = useResolvePayload()
11
11
  const { activePlugin: ActivePlugin, plugins, hideElementsConfig } = useXyoEmbedPluginState()
12
12
  const { listMode } = useListMode()
13
+ const supportsListMode = ActivePlugin?.components?.box?.listModes?.length ?? 0 > 1
13
14
 
14
15
  return (
15
16
  <Card elevation={3} variant="elevation" {...props}>
16
17
  {hideElementsConfig?.hideCardHeader ? null : <EmbedCardHeader />}
17
18
  <FlexGrowRow columnGap={2} rowGap={2} flexWrap="wrap" justifyContent="center" pb={1}>
18
19
  {plugins && plugins.length > 1 ? <EmbedRenderSelect /> : null}
19
- {(ActivePlugin?.components?.box?.listModes?.length ?? 0) > 1 ? <ListModeSelectFormControl /> : null}
20
+ {supportsListMode ? <ListModeSelectFormControl /> : null}
20
21
  </FlexGrowRow>
21
- <CardContent>{ActivePlugin ? <ActivePlugin.components.box.details payload={payload} listMode={listMode} /> : null}</CardContent>
22
+ <CardContent>
23
+ {ActivePlugin ? <ActivePlugin.components.box.details payload={payload} {...(supportsListMode && { listMode })} /> : null}
24
+ </CardContent>
22
25
  </Card>
23
26
  )
24
27
  }
@@ -1,15 +1,15 @@
1
- import { Alert, AlertProps, AlertTitle } from '@mui/material'
1
+ import { Alert, AlertProps } from '@mui/material'
2
2
  import { WithChildren } from '@xylabs/react-shared'
3
3
 
4
4
  import { useValidatePayload } from '../../contexts'
5
5
 
6
- export const ValidatePayload: React.FC<WithChildren<AlertProps>> = ({ children, ...props }) => {
6
+ export const ValidatePayloadAlert: React.FC<WithChildren<AlertProps>> = ({ children, ...props }) => {
7
7
  const { validPayload, enabled, schema } = useValidatePayload()
8
8
 
9
9
  if (enabled && validPayload === false) {
10
10
  return (
11
- <Alert severity="error" {...props}>
12
- <AlertTitle>Invalid Payload!</AlertTitle>Payload schema claimed to be {schema} but failed to validate.
11
+ <Alert severity="error" title="Invalid Payload!" {...props}>
12
+ Payload schema claimed to be {schema} but failed to validate.
13
13
  </Alert>
14
14
  )
15
15
  }
@@ -1,15 +1,15 @@
1
- import { Alert, AlertTitle } from '@mui/material'
1
+ import { Alert, AlertProps, AlertTitle } from '@mui/material'
2
2
  import { WithChildren } from '@xylabs/react-shared'
3
3
 
4
4
  import { useResolvePayload, useXyoEmbedPluginState } from '../../contexts'
5
5
 
6
- export const ValidatePlugins: React.FC<WithChildren> = ({ children }) => {
6
+ export const ValidatePluginsAlert: React.FC<WithChildren<AlertProps>> = ({ children, ...props }) => {
7
7
  const { payload } = useResolvePayload()
8
8
  const { plugins } = useXyoEmbedPluginState()
9
9
 
10
10
  if (payload && plugins?.length === 0) {
11
11
  return (
12
- <Alert severity="warning">
12
+ <Alert severity="warning" {...props}>
13
13
  <AlertTitle>Missing plugins!</AlertTitle>Payload found but no plugins were present.
14
14
  </Alert>
15
15
  )
@@ -0,0 +1,27 @@
1
+ import { CardProps } from '@mui/material'
2
+ import { WithChildren } from '@xylabs/react-shared'
3
+ import { XyoApiError } from '@xyo-network/api'
4
+ import { XyoApiErrorRender } from '@xyo-network/react-auth-service'
5
+ import { ApiErrorAlert } from '@xyo-network/react-shared'
6
+
7
+ import { EmbedErrorCard } from './EmbedErrorCard'
8
+
9
+ interface EmbedCardApiErrorRendererProps extends CardProps {
10
+ apiError?: XyoApiError
11
+ }
12
+
13
+ export const EmbedCardApiErrorRenderer: React.FC<WithChildren<EmbedCardApiErrorRendererProps>> = ({ apiError, children, ...props }) => {
14
+ return (
15
+ <XyoApiErrorRender apiError={apiError} noReAuth noErrorDisplay customError={<CustomApiErrorCard apiError={apiError} {...props} />}>
16
+ {children}
17
+ </XyoApiErrorRender>
18
+ )
19
+ }
20
+
21
+ const CustomApiErrorCard: React.FC<EmbedCardApiErrorRendererProps> = ({ apiError, ...props }) => {
22
+ return (
23
+ <EmbedErrorCard {...props}>
24
+ <ApiErrorAlert call={apiError} />
25
+ </EmbedErrorCard>
26
+ )
27
+ }
@@ -0,0 +1,41 @@
1
+ import { Alert, AlertProps, AlertTitle, Card, CardContent, CardProps, Typography } from '@mui/material'
2
+ import { WithChildren } from '@xylabs/react-shared'
3
+
4
+ interface EmbedErrorCardBaseProps {
5
+ alertProps?: AlertProps
6
+ error?: Error
7
+ hideErrorDetails?: boolean
8
+ }
9
+
10
+ interface EmbedErrorCardProps extends EmbedErrorCardBaseProps, CardProps {
11
+ alertProps?: AlertProps
12
+ error?: Error
13
+ }
14
+
15
+ export const EmbedErrorCard: React.FC<WithChildren<EmbedErrorCardProps>> = (props) => {
16
+ const { alertProps, error, hideErrorDetails = true, children, ...cardProps } = props
17
+ const errorProps = { alertProps, error, hideErrorDetails }
18
+ return (
19
+ <Card {...cardProps}>
20
+ <CardContent>{children ?? <DefaultErrorAlert {...errorProps} />}</CardContent>
21
+ </Card>
22
+ )
23
+ }
24
+
25
+ const DefaultErrorAlert: React.FC<EmbedErrorCardBaseProps> = ({ alertProps, hideErrorDetails, error }) => {
26
+ return (
27
+ <Alert severity="error" {...alertProps}>
28
+ <AlertTitle>Whoops! Something went wrong</AlertTitle>
29
+ {!hideErrorDetails && error ? (
30
+ <>
31
+ <Typography variant="caption">Error: </Typography>
32
+ <Typography variant="caption">{error?.message}</Typography>
33
+ </>
34
+ ) : (
35
+ <Typography variant="caption" fontSize="small">
36
+ Error Loading Plugin
37
+ </Typography>
38
+ )}
39
+ </Alert>
40
+ )
41
+ }
@@ -0,0 +1,2 @@
1
+ export * from './EmbedCardApiErrorRenderer'
2
+ export * from './EmbedErrorCard'
@@ -1,4 +1,5 @@
1
1
  export * from './EmbedCardResolver'
2
2
  export * from './EmbedPluginCard'
3
+ export * from './error-handling'
3
4
  export * from './ValidatePayload'
4
5
  export * from './ValidatePlugins'
@@ -0,0 +1,28 @@
1
+ import { Meta } from '@storybook/react'
2
+ import { CryptoAssetRenderPlugin } from '@xyo-network/react-aggregate-price-plugin'
3
+ import { UniswapPairsRenderPlugin } from '@xyo-network/react-crypto-market-uniswap-payload-plugin'
4
+
5
+ import { Template, xyoEmbedStoryBase } from './shared.stories'
6
+
7
+ const AggregatePricePointer = 'https://api.archivist.xyo.network/1948bf4eedf90ee2b8a1f63216b7c6b3b18d7bc2834330d85bcd6ab3d6428a20'
8
+ const UniswapPairPointer = 'https://beta.api.archivist.xyo.network/e36602006239d86b6e08412f7879372b2c622d74f4d6bc508a08a46fa8ad6523'
9
+
10
+ // eslint-disable-next-line import/no-default-export
11
+ export default {
12
+ ...xyoEmbedStoryBase,
13
+ title: 'embed/XyoEmbedPlugin/examples',
14
+ } as Meta
15
+
16
+ const AggregatePriceExample = Template.bind({})
17
+ AggregatePriceExample.args = {
18
+ huriPayload: AggregatePricePointer,
19
+ plugins: [CryptoAssetRenderPlugin],
20
+ }
21
+
22
+ const UniswapPairsExample = Template.bind({})
23
+ UniswapPairsExample.args = {
24
+ huriPayload: UniswapPairPointer,
25
+ plugins: [UniswapPairsRenderPlugin],
26
+ }
27
+
28
+ export { AggregatePriceExample, UniswapPairsExample }
@@ -1,35 +1,19 @@
1
- import { ComponentStory, Meta } from '@storybook/react'
1
+ import { Meta } from '@storybook/react'
2
2
  import { CryptoAssetRenderPlugin } from '@xyo-network/react-aggregate-price-plugin'
3
3
  import { UniswapPairsRenderPlugin } from '@xyo-network/react-crypto-market-uniswap-payload-plugin'
4
4
  import { createPayloadRenderPlugin } from '@xyo-network/react-payload-plugin'
5
- import { BrowserRouter } from 'react-router-dom'
6
5
 
7
6
  import { payloadData } from './payload.stories'
8
- import { XyoEmbedPlugin } from './XyoEmbedPlugin'
7
+ import { Template, xyoEmbedStoryBase } from './shared.stories'
9
8
 
10
9
  const AggregatePricePointer = 'https://api.archivist.xyo.network/1948bf4eedf90ee2b8a1f63216b7c6b3b18d7bc2834330d85bcd6ab3d6428a20'
11
- const UniswapPairPointer = 'https://beta.api.archivist.xyo.network/e36602006239d86b6e08412f7879372b2c622d74f4d6bc508a08a46fa8ad6523'
12
10
 
13
11
  // eslint-disable-next-line import/no-default-export
14
12
  export default {
15
- argTypes: {},
16
- component: XyoEmbedPlugin,
17
- parameters: {
18
- docs: {
19
- page: null,
20
- },
21
- },
22
- title: 'embed/XyoEmbedPlugin',
13
+ ...xyoEmbedStoryBase,
14
+ title: 'embed/XyoEmbedPlugin/states',
23
15
  } as Meta
24
16
 
25
- const Template: ComponentStory<typeof XyoEmbedPlugin> = (args) => {
26
- return (
27
- <BrowserRouter>
28
- <XyoEmbedPlugin {...args} />
29
- </BrowserRouter>
30
- )
31
- }
32
-
33
17
  const testPlugin = createPayloadRenderPlugin({
34
18
  canRender: () => true,
35
19
  name: 'Test Plugin',
@@ -40,28 +24,34 @@ const testPlugin1 = createPayloadRenderPlugin({
40
24
  name: 'Test1 Plugin',
41
25
  })
42
26
 
27
+ const failingPlugin = createPayloadRenderPlugin({
28
+ canRender: () => true,
29
+ components: {
30
+ box: {
31
+ details: () => {
32
+ throw Error('testing Error Boundary')
33
+ },
34
+ },
35
+ },
36
+ name: 'Failing Plugin',
37
+ })
38
+
43
39
  const Default = Template.bind({})
44
40
  Default.args = {
45
41
  huri: AggregatePricePointer,
46
42
  plugins: [testPlugin, testPlugin1],
47
43
  }
48
44
 
49
- const AggregatePriceExample = Template.bind({})
50
- AggregatePriceExample.args = {
51
- huriPayload: AggregatePricePointer,
52
- plugins: [CryptoAssetRenderPlugin],
53
- }
54
-
55
- const UniswapPairsExample = Template.bind({})
56
- UniswapPairsExample.args = {
57
- huriPayload: UniswapPairPointer,
45
+ const ApiError = Template.bind({})
46
+ ApiError.args = {
47
+ huriPayload: 'https://api.archivist.xyo.network/9663b2f80395a9e7e95948fdd5988b778a4dcc047202bf67e855ff6cd459b8c',
58
48
  plugins: [UniswapPairsRenderPlugin],
59
49
  }
60
50
 
61
- const Error = Template.bind({})
62
- Error.args = {
63
- huriPayload: 'https://api.archivist.xyo.network/9663b2f80395a9e7e95948fdd5988b778a4dcc047202bf67e855ff6cd459b8c',
64
- plugins: [UniswapPairsRenderPlugin],
51
+ const ThrownError = Template.bind({})
52
+ ThrownError.args = {
53
+ huriPayload: AggregatePricePointer,
54
+ plugins: [failingPlugin],
65
55
  }
66
56
 
67
57
  const HiddenElements = Template.bind({})
@@ -98,4 +88,4 @@ WithOnRefresh.args = {
98
88
  plugins: [CryptoAssetRenderPlugin],
99
89
  }
100
90
 
101
- export { AggregatePriceExample, Default, Error, HiddenElements, UniswapPairsExample, WithOnRefresh, WithPassedPayload, WithSetBusyExternally }
91
+ export { ApiError, Default, HiddenElements, ThrownError, WithOnRefresh, WithPassedPayload, WithSetBusyExternally }
@@ -0,0 +1,22 @@
1
+ import { ComponentStory, Meta } from '@storybook/react'
2
+ import { BrowserRouter } from 'react-router-dom'
3
+
4
+ import { XyoEmbedPlugin } from '../XyoEmbedPlugin'
5
+
6
+ export const xyoEmbedStoryBase: Meta = {
7
+ argTypes: {},
8
+ component: XyoEmbedPlugin,
9
+ parameters: {
10
+ docs: {
11
+ page: null,
12
+ },
13
+ },
14
+ }
15
+
16
+ export const Template: ComponentStory<typeof XyoEmbedPlugin> = (args) => {
17
+ return (
18
+ <BrowserRouter>
19
+ <XyoEmbedPlugin {...args} />
20
+ </BrowserRouter>
21
+ )
22
+ }
@@ -9,6 +9,7 @@ export interface EmbedPluginVisibilityConfig {
9
9
  hideTimestamp?: boolean
10
10
  hideCardActions?: boolean
11
11
  hideCardHeader?: boolean
12
+ hideErrorDetails?: boolean
12
13
  }
13
14
 
14
15
  /**
@@ -1 +0,0 @@
1
- {"version":3,"file":"ControlWrap.d.ts","sourceRoot":"","sources":["../../../../src/components/controls/ControlWrap.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAe,gBAAgB,EAAc,MAAM,eAAe,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,UAAU,qBAAsB,SAAQ,gBAAgB;IACtD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAO1E,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ControlWrap.js","sourceRoot":"","sources":["../../../../src/components/controls/ControlWrap.tsx"],"names":[],"mappings":";;;;;AAAA,4CAAyE;AAQlE,MAAM,gBAAgB,GAAkD,CAAC,EAAyC,EAAE,EAAE;QAA7C,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,OAAY,EAAP,KAAK,sBAAvC,mCAAyC,CAAF;IACrH,OAAO,CACL,wBAAC,sBAAW,oBAAK,KAAK,eACpB,uBAAC,qBAAU,kBAAC,EAAE,EAAE,MAAM,gBAAG,SAAS,IAAc,EAC/C,QAAQ,KACG,CACf,CAAA;AACH,CAAC,CAAA;AAPY,QAAA,gBAAgB,oBAO5B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ControlWrap.d.ts","sourceRoot":"","sources":["../../../../src/components/controls/ControlWrap.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAe,gBAAgB,EAAc,MAAM,eAAe,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,UAAU,qBAAsB,SAAQ,gBAAgB;IACtD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAO1E,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ControlWrap.js","sourceRoot":"","sources":["../../../../src/components/controls/ControlWrap.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAoB,UAAU,EAAE,MAAM,eAAe,CAAA;AAQzE,MAAM,CAAC,MAAM,gBAAgB,GAAkD,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAC3H,OAAO,CACL,MAAC,WAAW,OAAK,KAAK,aACpB,KAAC,UAAU,IAAC,EAAE,EAAE,MAAM,YAAG,SAAS,GAAc,EAC/C,QAAQ,IACG,CACf,CAAA;AACH,CAAC,CAAA"}