@xyo-network/react-embed 3.0.1 → 3.0.3
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/browser/components/EmbedPlugin.d.ts +5 -0
- package/dist/browser/components/EmbedPlugin.d.ts.map +1 -0
- package/dist/browser/components/EmbedResolver.d.ts +4 -0
- package/dist/browser/components/EmbedResolver.d.ts.map +1 -0
- package/dist/browser/components/controls/EmbedFormControl.d.ts +10 -0
- package/dist/browser/components/controls/EmbedFormControl.d.ts.map +1 -0
- package/dist/browser/components/controls/ListModeSelect.d.ts +6 -0
- package/dist/browser/components/controls/ListModeSelect.d.ts.map +1 -0
- package/dist/browser/components/controls/RenderSelect.d.ts +4 -0
- package/dist/browser/components/controls/RenderSelect.d.ts.map +1 -0
- package/dist/browser/components/controls/index.d.ts +4 -0
- package/dist/browser/components/controls/index.d.ts.map +1 -0
- package/dist/browser/components/embed-card/EmbedCardResolver.d.ts +5 -0
- package/dist/browser/components/embed-card/EmbedCardResolver.d.ts.map +1 -0
- package/dist/browser/components/embed-card/EmbedPluginCard.d.ts +10 -0
- package/dist/browser/components/embed-card/EmbedPluginCard.d.ts.map +1 -0
- package/dist/browser/components/embed-card/card/BusyCard.d.ts +11 -0
- package/dist/browser/components/embed-card/card/BusyCard.d.ts.map +1 -0
- package/dist/browser/components/embed-card/card/EmbedCardHeader.d.ts +4 -0
- package/dist/browser/components/embed-card/card/EmbedCardHeader.d.ts.map +1 -0
- package/dist/browser/components/embed-card/card/EmbedPluginCard.d.ts +4 -0
- package/dist/browser/components/embed-card/card/EmbedPluginCard.d.ts.map +1 -0
- package/dist/browser/components/embed-card/card/index.d.ts +4 -0
- package/dist/browser/components/embed-card/card/index.d.ts.map +1 -0
- package/dist/browser/components/embed-card/error-handling/EmbedCardApiErrorRenderer.d.ts +10 -0
- package/dist/browser/components/embed-card/error-handling/EmbedCardApiErrorRenderer.d.ts.map +1 -0
- package/dist/browser/components/embed-card/error-handling/EmbedErrorCard.d.ts +14 -0
- package/dist/browser/components/embed-card/error-handling/EmbedErrorCard.d.ts.map +1 -0
- package/dist/browser/components/embed-card/error-handling/index.d.ts +3 -0
- package/dist/browser/components/embed-card/error-handling/index.d.ts.map +1 -0
- package/dist/browser/components/embed-card/index.d.ts +3 -0
- package/dist/browser/components/embed-card/index.d.ts.map +1 -0
- package/dist/browser/components/embed-card/menu/EmbedMenu.d.ts +4 -0
- package/dist/browser/components/embed-card/menu/EmbedMenu.d.ts.map +1 -0
- package/dist/browser/components/embed-card/menu/JsonMenuItem.d.ts +4 -0
- package/dist/browser/components/embed-card/menu/JsonMenuItem.d.ts.map +1 -0
- package/dist/browser/components/embed-card/menu/index.d.ts +2 -0
- package/dist/browser/components/embed-card/menu/index.d.ts.map +1 -0
- package/dist/browser/components/index.d.ts +3 -0
- package/dist/browser/components/index.d.ts.map +1 -0
- package/dist/browser/components/stories/storyPayload.d.ts +126 -0
- package/dist/browser/components/stories/storyPayload.d.ts.map +1 -0
- package/dist/browser/components/stories/storyShared.d.ts +4 -0
- package/dist/browser/components/stories/storyShared.d.ts.map +1 -0
- package/dist/browser/components/stories/xyoEmbedStoryBase.d.ts +3 -0
- package/dist/browser/components/stories/xyoEmbedStoryBase.d.ts.map +1 -0
- package/dist/browser/components/validation-alerts/ValidatePayload.d.ts +5 -0
- package/dist/browser/components/validation-alerts/ValidatePayload.d.ts.map +1 -0
- package/dist/browser/components/validation-alerts/ValidatePlugins.d.ts +5 -0
- package/dist/browser/components/validation-alerts/ValidatePlugins.d.ts.map +1 -0
- package/dist/browser/components/validation-alerts/index.d.ts +3 -0
- package/dist/browser/components/validation-alerts/index.d.ts.map +1 -0
- package/dist/browser/contexts/EmbedPluginContext/Context.d.ts +3 -0
- package/dist/browser/contexts/EmbedPluginContext/Context.d.ts.map +1 -0
- package/dist/browser/contexts/EmbedPluginContext/Provider.d.ts +6 -0
- package/dist/browser/contexts/EmbedPluginContext/Provider.d.ts.map +1 -0
- package/dist/browser/contexts/EmbedPluginContext/State.d.ts +28 -0
- package/dist/browser/contexts/EmbedPluginContext/State.d.ts.map +1 -0
- package/dist/browser/contexts/EmbedPluginContext/index.d.ts +5 -0
- package/dist/browser/contexts/EmbedPluginContext/index.d.ts.map +1 -0
- package/dist/browser/contexts/EmbedPluginContext/use.d.ts +2 -0
- package/dist/browser/contexts/EmbedPluginContext/use.d.ts.map +1 -0
- package/dist/browser/contexts/RefreshPayloadContext/Context.d.ts +3 -0
- package/dist/browser/contexts/RefreshPayloadContext/Context.d.ts.map +1 -0
- package/dist/browser/contexts/RefreshPayloadContext/Provider.d.ts +8 -0
- package/dist/browser/contexts/RefreshPayloadContext/Provider.d.ts.map +1 -0
- package/dist/browser/contexts/RefreshPayloadContext/State.d.ts +8 -0
- package/dist/browser/contexts/RefreshPayloadContext/State.d.ts.map +1 -0
- package/dist/browser/contexts/RefreshPayloadContext/index.d.ts +4 -0
- package/dist/browser/contexts/RefreshPayloadContext/index.d.ts.map +1 -0
- package/dist/browser/contexts/RefreshPayloadContext/use.d.ts +2 -0
- package/dist/browser/contexts/RefreshPayloadContext/use.d.ts.map +1 -0
- package/dist/browser/contexts/ResolvePayloadContext/Context.d.ts +3 -0
- package/dist/browser/contexts/ResolvePayloadContext/Context.d.ts.map +1 -0
- package/dist/browser/contexts/ResolvePayloadContext/Provider.d.ts +6 -0
- package/dist/browser/contexts/ResolvePayloadContext/Provider.d.ts.map +1 -0
- package/dist/browser/contexts/ResolvePayloadContext/State.d.ts +13 -0
- package/dist/browser/contexts/ResolvePayloadContext/State.d.ts.map +1 -0
- package/dist/browser/contexts/ResolvePayloadContext/index.d.ts +5 -0
- package/dist/browser/contexts/ResolvePayloadContext/index.d.ts.map +1 -0
- package/dist/browser/contexts/ResolvePayloadContext/use.d.ts +2 -0
- package/dist/browser/contexts/ResolvePayloadContext/use.d.ts.map +1 -0
- package/dist/browser/contexts/ValidatePayloadContext/Context.d.ts +3 -0
- package/dist/browser/contexts/ValidatePayloadContext/Context.d.ts.map +1 -0
- package/dist/browser/contexts/ValidatePayloadContext/Provider.d.ts +7 -0
- package/dist/browser/contexts/ValidatePayloadContext/Provider.d.ts.map +1 -0
- package/dist/browser/contexts/ValidatePayloadContext/State.d.ts +7 -0
- package/dist/browser/contexts/ValidatePayloadContext/State.d.ts.map +1 -0
- package/dist/browser/contexts/ValidatePayloadContext/index.d.ts +4 -0
- package/dist/browser/contexts/ValidatePayloadContext/index.d.ts.map +1 -0
- package/dist/browser/contexts/ValidatePayloadContext/use.d.ts +2 -0
- package/dist/browser/contexts/ValidatePayloadContext/use.d.ts.map +1 -0
- package/dist/browser/contexts/index.d.ts +5 -0
- package/dist/browser/contexts/index.d.ts.map +1 -0
- package/dist/browser/index.d.ts +4 -112
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.mjs.map +1 -1
- package/dist/browser/types/EmbedPluginProps.d.ts +9 -0
- package/dist/browser/types/EmbedPluginProps.d.ts.map +1 -0
- package/dist/browser/types/index.d.ts +2 -0
- package/dist/browser/types/index.d.ts.map +1 -0
- package/package.json +57 -54
- package/src/components/EmbedPlugin.tsx +9 -5
- package/src/components/EmbedResolver.tsx +4 -2
- package/src/components/controls/EmbedFormControl.tsx +6 -3
- package/src/components/controls/ListModeSelect.tsx +4 -2
- package/src/components/controls/RenderSelect.tsx +5 -2
- package/src/components/embed-card/EmbedCardResolver.tsx +11 -4
- package/src/components/embed-card/EmbedPluginCard.tsx +9 -4
- package/src/components/embed-card/card/BusyCard.tsx +7 -4
- package/src/components/embed-card/card/EmbedCardHeader.tsx +10 -3
- package/src/components/embed-card/card/EmbedPluginCard.tsx +5 -2
- package/src/components/embed-card/error-handling/EmbedCardApiErrorRenderer.tsx +6 -4
- package/src/components/embed-card/error-handling/EmbedErrorCard.tsx +14 -5
- package/src/components/embed-card/menu/EmbedMenu.tsx +2 -1
- package/src/components/embed-card/menu/JsonMenuItem.tsx +4 -1
- package/src/components/stories/XyoEmbedPlugin.examples.stories.tsx +1 -1
- package/src/components/stories/XyoEmbedPlugin.states.stories.tsx +4 -2
- package/src/components/stories/storyPayload.ts +60 -12
- package/src/components/stories/storyShared.tsx +1 -11
- package/src/components/stories/xyoEmbedStoryBase.ts +9 -0
- package/src/components/validation-alerts/ValidatePayload.tsx +6 -3
- package/src/components/validation-alerts/ValidatePlugins.tsx +3 -2
- package/src/contexts/EmbedPluginContext/Context.ts +1 -1
- package/src/contexts/EmbedPluginContext/Provider.tsx +3 -3
- package/src/contexts/EmbedPluginContext/State.ts +3 -3
- package/src/contexts/RefreshPayloadContext/Context.ts +1 -1
- package/src/contexts/RefreshPayloadContext/Provider.tsx +8 -3
- package/src/contexts/RefreshPayloadContext/State.ts +2 -2
- package/src/contexts/ResolvePayloadContext/Context.ts +1 -1
- package/src/contexts/ResolvePayloadContext/Provider.tsx +14 -6
- package/src/contexts/ResolvePayloadContext/State.ts +3 -3
- package/src/contexts/ValidatePayloadContext/Context.ts +1 -1
- package/src/contexts/ValidatePayloadContext/Provider.stories.tsx +15 -6
- package/src/contexts/ValidatePayloadContext/Provider.tsx +7 -3
- package/src/contexts/ValidatePayloadContext/State.ts +1 -1
- package/src/types/EmbedPluginProps.ts +2 -2
- package/xy.config.ts +2 -4
@@ -1,10 +1,12 @@
|
|
1
|
-
import { FlexBoxProps } from '@xylabs/react-flexbox'
|
2
|
-
import { WithChildren } from '@xylabs/react-shared'
|
1
|
+
import type { FlexBoxProps } from '@xylabs/react-flexbox'
|
2
|
+
import type { WithChildren } from '@xylabs/react-shared'
|
3
3
|
import { ErrorBoundary, ListModeProvider } from '@xyo-network/react-shared'
|
4
4
|
import React from 'react'
|
5
5
|
|
6
|
-
import {
|
7
|
-
|
6
|
+
import {
|
7
|
+
EmbedPluginProvider, RefreshPayloadProvider, ResolvePayloadProvider, ValidatePayloadProvider,
|
8
|
+
} from '../contexts/index.ts'
|
9
|
+
import type { EmbedPluginProps } from '../types/index.ts'
|
8
10
|
import { EmbedResolver } from './EmbedResolver.tsx'
|
9
11
|
import { ValidatePayloadAlert, ValidatePluginsAlert } from './validation-alerts/index.ts'
|
10
12
|
|
@@ -40,7 +42,9 @@ export const EmbedPluginInner: React.FC<WithChildren<EmbedPluginProps>> = ({
|
|
40
42
|
|
41
43
|
interface WithResolversProps extends Pick<EmbedPluginProps, 'onRefresh' | 'huriPayload'>, FlexBoxProps {}
|
42
44
|
|
43
|
-
const WithResolvers: React.FC<WithChildren<WithResolversProps>> = ({
|
45
|
+
const WithResolvers: React.FC<WithChildren<WithResolversProps>> = ({
|
46
|
+
children, onRefresh, huriPayload,
|
47
|
+
}) => {
|
44
48
|
return (
|
45
49
|
<RefreshPayloadProvider onRefresh={onRefresh}>
|
46
50
|
<ResolvePayloadProvider huriPayload={huriPayload}>
|
@@ -1,11 +1,13 @@
|
|
1
|
-
import { WithChildren } from '@xylabs/react-shared'
|
1
|
+
import type { WithChildren } from '@xylabs/react-shared'
|
2
2
|
import { LoadResult } from '@xyo-network/react-shared'
|
3
3
|
import React from 'react'
|
4
4
|
|
5
5
|
import { useResolvePayload } from '../contexts/index.ts'
|
6
6
|
|
7
7
|
export const EmbedResolver: React.FC<WithChildren> = ({ children }) => {
|
8
|
-
const {
|
8
|
+
const {
|
9
|
+
payload, notFound, huriError,
|
10
|
+
} = useResolvePayload()
|
9
11
|
|
10
12
|
return (
|
11
13
|
<LoadResult searchResult={payload} notFound={!!notFound} error={!!huriError}>
|
@@ -1,5 +1,6 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
1
|
+
import type { FormControlProps } from '@mui/material'
|
2
|
+
import { FormControl, InputLabel } from '@mui/material'
|
3
|
+
import type { WithChildren } from '@xylabs/react-shared'
|
3
4
|
import React from 'react'
|
4
5
|
|
5
6
|
interface EmbedFormControlProps extends FormControlProps {
|
@@ -7,7 +8,9 @@ interface EmbedFormControlProps extends FormControlProps {
|
|
7
8
|
formLabel?: string
|
8
9
|
}
|
9
10
|
|
10
|
-
export const EmbedFormControl: React.FC<WithChildren<EmbedFormControlProps>> = ({
|
11
|
+
export const EmbedFormControl: React.FC<WithChildren<EmbedFormControlProps>> = ({
|
12
|
+
formId, formLabel, children, ...props
|
13
|
+
}) => {
|
11
14
|
return (
|
12
15
|
<FormControl {...props}>
|
13
16
|
<InputLabel id={formId}>{formLabel}</InputLabel>
|
@@ -1,6 +1,8 @@
|
|
1
1
|
import { MenuItem } from '@mui/material'
|
2
|
-
import {
|
3
|
-
import {
|
2
|
+
import type { SelectExProps } from '@xylabs/react-select'
|
3
|
+
import { SelectEx } from '@xylabs/react-select'
|
4
|
+
import type { ListMode } from '@xyo-network/react-shared'
|
5
|
+
import { useListMode } from '@xyo-network/react-shared'
|
4
6
|
import React from 'react'
|
5
7
|
|
6
8
|
import { EmbedFormControl } from './EmbedFormControl.tsx'
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { MenuItem } from '@mui/material'
|
2
|
-
import {
|
2
|
+
import type { SelectExProps } from '@xylabs/react-select'
|
3
|
+
import { SelectEx } from '@xylabs/react-select'
|
3
4
|
import React from 'react'
|
4
5
|
|
5
6
|
import { useEmbedPluginState } from '../../contexts/index.ts'
|
@@ -9,7 +10,9 @@ const renderSelectId = 'render-select-id'
|
|
9
10
|
const renderSelectLabel = 'Renderer'
|
10
11
|
|
11
12
|
export const EmbedRenderSelect: React.FC<SelectExProps<string>> = (props) => {
|
12
|
-
const {
|
13
|
+
const {
|
14
|
+
activePlugin, setActivePlugin, plugins,
|
15
|
+
} = useEmbedPluginState()
|
13
16
|
return (
|
14
17
|
<EmbedFormControl formId={renderSelectId} formLabel={renderSelectLabel}>
|
15
18
|
<SelectEx size="small" value={activePlugin?.name} {...props}>
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { useTheme } from '@mui/material'
|
2
|
-
import { FlexBoxProps
|
3
|
-
import {
|
2
|
+
import type { FlexBoxProps } from '@xylabs/react-flexbox'
|
3
|
+
import { FlexCol } from '@xylabs/react-flexbox'
|
4
|
+
import type { WithChildren } from '@xylabs/react-shared'
|
4
5
|
import { LoadResult } from '@xyo-network/react-shared'
|
5
6
|
import React from 'react'
|
6
7
|
|
@@ -8,7 +9,9 @@ import { useRefreshPayload, useResolvePayload } from '../../contexts/index.ts'
|
|
8
9
|
import { EmbedCardApiErrorRenderer } from './error-handling/index.ts'
|
9
10
|
|
10
11
|
export const EmbedCardResolverFlexBox: React.FC<WithChildren<FlexBoxProps>> = ({ children, ...props }) => {
|
11
|
-
const {
|
12
|
+
const {
|
13
|
+
payload, notFound, huriError,
|
14
|
+
} = useResolvePayload()
|
12
15
|
const { refreshPayload } = useRefreshPayload()
|
13
16
|
const theme = useTheme()
|
14
17
|
|
@@ -20,7 +23,11 @@ export const EmbedCardResolverFlexBox: React.FC<WithChildren<FlexBoxProps>> = ({
|
|
20
23
|
alignItems="stretch"
|
21
24
|
justifyContent="start"
|
22
25
|
busy={Boolean(!refreshPayload && payload)}
|
23
|
-
busyCircularProps={{
|
26
|
+
busyCircularProps={{
|
27
|
+
style: {
|
28
|
+
alignItems: 'start', paddingTop: theme.spacing(2), zIndex: 2,
|
29
|
+
},
|
30
|
+
}}
|
24
31
|
{...props}
|
25
32
|
>
|
26
33
|
{children}
|
@@ -1,11 +1,12 @@
|
|
1
1
|
import { useTheme } from '@mui/material'
|
2
|
-
import { WithChildren } from '@xylabs/react-shared'
|
2
|
+
import type { WithChildren } from '@xylabs/react-shared'
|
3
3
|
import React from 'react'
|
4
4
|
|
5
5
|
import { useRefreshPayload, useResolvePayload } from '../../contexts/index.ts'
|
6
|
-
import { EmbedPluginProps } from '../../types/index.ts'
|
6
|
+
import type { EmbedPluginProps } from '../../types/index.ts'
|
7
7
|
import { EmbedPluginInner } from '../EmbedPlugin.tsx'
|
8
|
-
import { BusyCardProps
|
8
|
+
import type { BusyCardProps } from './card/index.ts'
|
9
|
+
import { EmbedPluginCard } from './card/index.ts'
|
9
10
|
import { EmbedCardApiErrorRenderer } from './error-handling/index.ts'
|
10
11
|
|
11
12
|
export interface EmbedPluginCardProps extends WithChildren, EmbedPluginProps, BusyCardProps {}
|
@@ -53,7 +54,11 @@ export const EmbedPluginCardInner: React.FC<BusyCardProps> = (props) => {
|
|
53
54
|
elevation={3}
|
54
55
|
variant="elevation"
|
55
56
|
busy={Boolean(!refreshPayload && payload)}
|
56
|
-
busyVariantProps={{
|
57
|
+
busyVariantProps={{
|
58
|
+
style: {
|
59
|
+
alignItems: 'start', paddingTop: theme.spacing(2), zIndex: 2,
|
60
|
+
},
|
61
|
+
}}
|
57
62
|
sx={{ position: 'relative' }}
|
58
63
|
{...props}
|
59
64
|
/>
|
@@ -1,13 +1,16 @@
|
|
1
|
-
import {
|
1
|
+
import type { CardProps } from '@mui/material'
|
2
|
+
import { Card } from '@mui/material'
|
2
3
|
import { useBusyTiming } from '@xylabs/react-flexbox'
|
3
|
-
import {
|
4
|
-
BusyCircularProgress,
|
4
|
+
import type {
|
5
5
|
BusyCircularProgressProps,
|
6
|
-
BusyLinearProgress,
|
7
6
|
BusyLinearProgressProps,
|
8
7
|
BusyVariant,
|
9
8
|
WithChildren,
|
10
9
|
} from '@xylabs/react-shared'
|
10
|
+
import {
|
11
|
+
BusyCircularProgress,
|
12
|
+
BusyLinearProgress,
|
13
|
+
} from '@xylabs/react-shared'
|
11
14
|
import React from 'react'
|
12
15
|
|
13
16
|
export interface BusyCardProps extends CardProps {
|
@@ -1,5 +1,8 @@
|
|
1
1
|
import { Refresh as RefreshIcon } from '@mui/icons-material'
|
2
|
-
import {
|
2
|
+
import type { CardHeaderProps, Theme } from '@mui/material'
|
3
|
+
import {
|
4
|
+
Avatar, CardHeader, Chip,
|
5
|
+
} from '@mui/material'
|
3
6
|
import { FlexRow } from '@xylabs/react-flexbox'
|
4
7
|
import React from 'react'
|
5
8
|
|
@@ -8,8 +11,12 @@ import { EmbedMenu } from '../menu/index.ts'
|
|
8
11
|
|
9
12
|
export const EmbedCardHeader: React.FC<CardHeaderProps> = () => {
|
10
13
|
const { refreshHuri, huri } = useResolvePayload()
|
11
|
-
const {
|
12
|
-
|
14
|
+
const {
|
15
|
+
activePlugin, timestampLabel, hideElementsConfig,
|
16
|
+
} = useEmbedPluginState()
|
17
|
+
const {
|
18
|
+
hideAvatar, hideTitle, hideRefreshButton, hideTimestamp, hideCardActions,
|
19
|
+
} = hideElementsConfig ?? {}
|
13
20
|
// this is temporary so that we can add the ability to get a timestamp via diviner later
|
14
21
|
const timestamp = Date.now()
|
15
22
|
return (
|
@@ -5,12 +5,15 @@ import React from 'react'
|
|
5
5
|
|
6
6
|
import { useEmbedPluginState, useResolvePayload } from '../../../contexts/index.ts'
|
7
7
|
import { EmbedRenderSelect, ListModeSelectFormControl } from '../../controls/index.ts'
|
8
|
-
import {
|
8
|
+
import type { BusyCardProps } from './BusyCard.tsx'
|
9
|
+
import { BusyCard } from './BusyCard.tsx'
|
9
10
|
import { EmbedCardHeader } from './EmbedCardHeader.tsx'
|
10
11
|
|
11
12
|
export const EmbedPluginCard: React.FC<BusyCardProps> = ({ ...props }) => {
|
12
13
|
const { payload } = useResolvePayload()
|
13
|
-
const {
|
14
|
+
const {
|
15
|
+
activePlugin: ActivePlugin, plugins, hideElementsConfig,
|
16
|
+
} = useEmbedPluginState()
|
14
17
|
const { listMode } = useListMode()
|
15
18
|
const supportsListMode = ActivePlugin?.components?.box?.listModes?.length ?? 0 > 1
|
16
19
|
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import { CardProps } from '@mui/material'
|
2
|
-
import { WithChildren } from '@xylabs/react-shared'
|
3
|
-
import { ModuleError } from '@xyo-network/payload-model'
|
1
|
+
import type { CardProps } from '@mui/material'
|
2
|
+
import type { WithChildren } from '@xylabs/react-shared'
|
3
|
+
import type { ModuleError } from '@xyo-network/payload-model'
|
4
4
|
import { ErrorAlert, ErrorRender } from '@xyo-network/react-error'
|
5
5
|
import React from 'react'
|
6
6
|
|
@@ -10,7 +10,9 @@ interface EmbedCardApiErrorRendererProps extends CardProps {
|
|
10
10
|
xyoError?: ModuleError
|
11
11
|
}
|
12
12
|
|
13
|
-
export const EmbedCardApiErrorRenderer: React.FC<WithChildren<EmbedCardApiErrorRendererProps>> = ({
|
13
|
+
export const EmbedCardApiErrorRenderer: React.FC<WithChildren<EmbedCardApiErrorRendererProps>> = ({
|
14
|
+
xyoError, children, ...props
|
15
|
+
}) => {
|
14
16
|
return (
|
15
17
|
<ErrorRender error={xyoError} noReAuth noErrorDisplay customError={<CustomApiErrorCard xyoError={xyoError} {...props} />}>
|
16
18
|
{children}
|
@@ -1,5 +1,8 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
1
|
+
import type { AlertProps, CardProps } from '@mui/material'
|
2
|
+
import {
|
3
|
+
Alert, AlertTitle, Card, CardContent, Typography,
|
4
|
+
} from '@mui/material'
|
5
|
+
import type { WithChildren } from '@xylabs/react-shared'
|
3
6
|
import React from 'react'
|
4
7
|
|
5
8
|
interface EmbedErrorCardBaseProps {
|
@@ -12,8 +15,12 @@ interface EmbedErrorCardBaseProps {
|
|
12
15
|
interface EmbedErrorCardProps extends EmbedErrorCardBaseProps, CardProps {}
|
13
16
|
|
14
17
|
export const EmbedErrorCard: React.FC<WithChildren<EmbedErrorCardProps>> = (props) => {
|
15
|
-
const {
|
16
|
-
|
18
|
+
const {
|
19
|
+
alertProps, error, scope, hideErrorDetails = true, children, ...cardProps
|
20
|
+
} = props
|
21
|
+
const errorProps = {
|
22
|
+
alertProps, error, hideErrorDetails, scope,
|
23
|
+
}
|
17
24
|
return (
|
18
25
|
<Card {...cardProps}>
|
19
26
|
<CardContent>{children ?? <DefaultErrorAlert {...errorProps} />}</CardContent>
|
@@ -21,7 +28,9 @@ export const EmbedErrorCard: React.FC<WithChildren<EmbedErrorCardProps>> = (prop
|
|
21
28
|
)
|
22
29
|
}
|
23
30
|
|
24
|
-
const DefaultErrorAlert: React.FC<EmbedErrorCardBaseProps> = ({
|
31
|
+
const DefaultErrorAlert: React.FC<EmbedErrorCardBaseProps> = ({
|
32
|
+
alertProps, scope, hideErrorDetails, error,
|
33
|
+
}) => {
|
25
34
|
return (
|
26
35
|
<Alert severity="error" {...alertProps}>
|
27
36
|
<AlertTitle>Whoops! Something went wrong</AlertTitle>
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { MoreVert as MoreVertIcon } from '@mui/icons-material'
|
2
|
-
import {
|
2
|
+
import type { IconButtonProps } from '@mui/material'
|
3
|
+
import { IconButton, Menu } from '@mui/material'
|
3
4
|
import React, { useState } from 'react'
|
4
5
|
|
5
6
|
import { JsonMenuItem } from './JsonMenuItem.tsx'
|
@@ -1,5 +1,8 @@
|
|
1
1
|
import { OpenInNew as OpenInNewIcon } from '@mui/icons-material'
|
2
|
-
import {
|
2
|
+
import type { MenuItemProps } from '@mui/material'
|
3
|
+
import {
|
4
|
+
ListItemIcon, ListItemText, MenuItem,
|
5
|
+
} from '@mui/material'
|
3
6
|
import React from 'react'
|
4
7
|
|
5
8
|
import { useResolvePayload } from '../../../contexts/index.ts'
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Meta } from '@storybook/react'
|
1
|
+
import type { 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-plugin'
|
4
4
|
import { createPayloadRenderPlugin } from '@xyo-network/react-payload-plugin'
|
@@ -87,4 +87,6 @@ WithOnRefresh.args = {
|
|
87
87
|
plugins: [CryptoAssetRenderPlugin],
|
88
88
|
}
|
89
89
|
|
90
|
-
export {
|
90
|
+
export {
|
91
|
+
ApiError, Default, HiddenElements, ThrownError, WithOnRefresh, WithPassedPayload, WithSetBusyExternally,
|
92
|
+
}
|
@@ -1,20 +1,68 @@
|
|
1
1
|
export const payloadData = {
|
2
2
|
assets: {
|
3
|
-
ada: {
|
4
|
-
|
5
|
-
|
3
|
+
ada: {
|
4
|
+
value: {
|
5
|
+
btc: '0.00002192', eth: '0.00031141', eur: '0.491867', usd: '0.502045',
|
6
|
+
},
|
7
|
+
},
|
8
|
+
btc: {
|
9
|
+
value: {
|
10
|
+
btc: '1', eth: '14.213346', eur: '22450', usd: '22914',
|
11
|
+
},
|
12
|
+
},
|
13
|
+
busd: {
|
14
|
+
value: {
|
15
|
+
btc: '0.00004369', eth: '0.00062074', eur: '0.980451', usd: '1.001',
|
16
|
+
},
|
17
|
+
},
|
6
18
|
dai: { value: { usdc: '1.00004', xyo: '114.394' } },
|
7
|
-
doge: {
|
8
|
-
|
9
|
-
|
19
|
+
doge: {
|
20
|
+
value: {
|
21
|
+
btc: '0.00000293', eth: '0.00004157', eur: '0.065655', usd: '0.067013',
|
22
|
+
},
|
23
|
+
},
|
24
|
+
dot: {
|
25
|
+
value: {
|
26
|
+
btc: '0.00035508', eth: '0.00504454', eur: '7.97', usd: '8.13',
|
27
|
+
},
|
28
|
+
},
|
29
|
+
eth: {
|
30
|
+
value: {
|
31
|
+
btc: '0.0703878', eth: '1', eur: '1579.47', usd: '1612.16',
|
32
|
+
},
|
33
|
+
},
|
10
34
|
frax: { value: { usdc: '0.999738' } },
|
11
35
|
link: { value: { xyo: '837.731' } },
|
12
|
-
sol: {
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
36
|
+
sol: {
|
37
|
+
value: {
|
38
|
+
btc: '0.00169369', eth: '0.02406215', eur: '38.01', usd: '38.79',
|
39
|
+
},
|
40
|
+
},
|
41
|
+
usdc: {
|
42
|
+
value: {
|
43
|
+
btc: '0.0000436965', dai: '0.999963', eth: '0.0006204464999999999', eur: '0.979419', frax: '1.00026', usd: '0.999732',
|
44
|
+
},
|
45
|
+
},
|
46
|
+
usdt: {
|
47
|
+
value: {
|
48
|
+
btc: '0.00004367', eth: '0.0006204', eur: '0.979881', usd: '1.001', usdc: '1.00022', xyo: '113.28',
|
49
|
+
},
|
50
|
+
},
|
51
|
+
wbtc: {
|
52
|
+
value: {
|
53
|
+
btc: '0.99903669', eth: '14.2015745', eur: '22418', usd: '22882', usdc: '22860.8', xyo: '2617950',
|
54
|
+
},
|
55
|
+
},
|
56
|
+
weth: {
|
57
|
+
value: {
|
58
|
+
btc: '0.0703735', usdc: '1610.82', xyo: '186652',
|
59
|
+
},
|
60
|
+
},
|
61
|
+
xyo: {
|
62
|
+
value: {
|
63
|
+
btc: '3.79226e-7', dai: '0.00874169', eth: '0.000005353785', eur: '0.00844792', link: '0.0011937', usd: '0.00872519',
|
64
|
+
},
|
65
|
+
},
|
18
66
|
},
|
19
67
|
schema: 'network.xyo.crypto.asset',
|
20
68
|
timestamp: 1_659_625_815_232,
|
@@ -1,19 +1,9 @@
|
|
1
|
-
import {
|
1
|
+
import type { StoryFn } from '@storybook/react'
|
2
2
|
import React from 'react'
|
3
3
|
import { BrowserRouter } from 'react-router-dom'
|
4
4
|
|
5
5
|
import { ApiEmbedPluginCard } from '../embed-card/index.ts'
|
6
6
|
|
7
|
-
export const xyoEmbedStoryBase: Meta = {
|
8
|
-
argTypes: {},
|
9
|
-
component: ApiEmbedPluginCard,
|
10
|
-
parameters: {
|
11
|
-
docs: {
|
12
|
-
page: null,
|
13
|
-
},
|
14
|
-
},
|
15
|
-
}
|
16
|
-
|
17
7
|
export const Template: StoryFn<typeof ApiEmbedPluginCard> = (args) => {
|
18
8
|
return (
|
19
9
|
<BrowserRouter>
|
@@ -1,11 +1,14 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
1
|
+
import type { AlertProps } from '@mui/material'
|
2
|
+
import { Alert } from '@mui/material'
|
3
|
+
import type { WithChildren } from '@xylabs/react-shared'
|
3
4
|
import React from 'react'
|
4
5
|
|
5
6
|
import { useValidatePayload } from '../../contexts/index.ts'
|
6
7
|
|
7
8
|
export const ValidatePayloadAlert: React.FC<WithChildren<AlertProps>> = ({ children, ...props }) => {
|
8
|
-
const {
|
9
|
+
const {
|
10
|
+
validPayload, enabled, schema,
|
11
|
+
} = useValidatePayload()
|
9
12
|
|
10
13
|
if (enabled && validPayload === false) {
|
11
14
|
return (
|
@@ -1,5 +1,6 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
1
|
+
import type { AlertProps } from '@mui/material'
|
2
|
+
import { Alert, AlertTitle } from '@mui/material'
|
3
|
+
import type { WithChildren } from '@xylabs/react-shared'
|
3
4
|
import React from 'react'
|
4
5
|
|
5
6
|
import { useEmbedPluginState, useResolvePayload } from '../../contexts/index.ts'
|
@@ -1,9 +1,9 @@
|
|
1
|
-
import { WithChildren } from '@xylabs/react-shared'
|
2
|
-
import { PayloadRenderPlugin } from '@xyo-network/react-payload-plugin'
|
1
|
+
import type { WithChildren } from '@xylabs/react-shared'
|
2
|
+
import type { PayloadRenderPlugin } from '@xyo-network/react-payload-plugin'
|
3
3
|
import React, { useEffect, useState } from 'react'
|
4
4
|
|
5
5
|
import { EmbedPluginContext } from './Context.ts'
|
6
|
-
import { EmbedPluginBase } from './State.ts'
|
6
|
+
import type { EmbedPluginBase } from './State.ts'
|
7
7
|
|
8
8
|
export type EmbedPluginProviderProps = EmbedPluginBase
|
9
9
|
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import { PayloadRenderPlugin } from '@xyo-network/react-payload-plugin'
|
2
|
-
import { ContextExState, ListMode } from '@xyo-network/react-shared'
|
3
|
-
import { Dispatch, SetStateAction } from 'react'
|
1
|
+
import type { PayloadRenderPlugin } from '@xyo-network/react-payload-plugin'
|
2
|
+
import type { ContextExState, ListMode } from '@xyo-network/react-shared'
|
3
|
+
import type { Dispatch, SetStateAction } from 'react'
|
4
4
|
|
5
5
|
export interface EmbedPluginVisibilityConfig {
|
6
6
|
hideAvatar?: boolean
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { WithChildren } from '@xylabs/react-shared'
|
1
|
+
import type { WithChildren } from '@xylabs/react-shared'
|
2
2
|
import React, { useState } from 'react'
|
3
3
|
|
4
4
|
import { RefreshPayloadContext } from './Context.ts'
|
@@ -8,12 +8,17 @@ export interface RefreshPayloadProps {
|
|
8
8
|
refreshPayload?: boolean
|
9
9
|
}
|
10
10
|
|
11
|
-
export const RefreshPayloadProvider: React.FC<WithChildren<RefreshPayloadProps>> = ({
|
11
|
+
export const RefreshPayloadProvider: React.FC<WithChildren<RefreshPayloadProps>> = ({
|
12
|
+
children, onRefresh, refreshPayload,
|
13
|
+
}) => {
|
12
14
|
const [localRefreshPayload, setRefreshPayload] = useState(refreshPayload)
|
13
15
|
|
14
16
|
return (
|
15
17
|
// eslint-disable-next-line @eslint-react/no-unstable-context-value
|
16
|
-
<RefreshPayloadContext.Provider value={{
|
18
|
+
<RefreshPayloadContext.Provider value={{
|
19
|
+
onRefresh, provided: true, refreshPayload: localRefreshPayload, setRefreshPayload,
|
20
|
+
}}
|
21
|
+
>
|
17
22
|
{children}
|
18
23
|
</RefreshPayloadContext.Provider>
|
19
24
|
)
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { ContextExState } from '@xyo-network/react-shared'
|
2
|
-
import { Dispatch, SetStateAction } from 'react'
|
1
|
+
import type { ContextExState } from '@xyo-network/react-shared'
|
2
|
+
import type { Dispatch, SetStateAction } from 'react'
|
3
3
|
|
4
4
|
export interface RefreshPayloadState extends ContextExState {
|
5
5
|
onRefresh?: () => void
|
@@ -1,20 +1,23 @@
|
|
1
1
|
import { delay } from '@xylabs/delay'
|
2
2
|
import { useAsyncEffect } from '@xylabs/react-async-effect'
|
3
|
-
import { WithChildren } from '@xylabs/react-shared'
|
3
|
+
import type { WithChildren } from '@xylabs/react-shared'
|
4
4
|
import { Huri } from '@xyo-network/huri'
|
5
|
-
import { ModuleError,
|
5
|
+
import type { ModuleError, Payload } from '@xyo-network/payload-model'
|
6
|
+
import { ModuleErrorSchema } from '@xyo-network/payload-model'
|
6
7
|
import React, { useEffect, useState } from 'react'
|
7
8
|
|
8
9
|
import { useRefreshPayload } from '../RefreshPayloadContext/index.ts'
|
9
10
|
import { ResolvePayloadContext } from './Context.ts'
|
10
|
-
import { ResolvePayloadState } from './State.ts'
|
11
|
+
import type { ResolvePayloadState } from './State.ts'
|
11
12
|
|
12
13
|
export type ResolvePayloadProviderProps = Omit<ResolvePayloadState, 'provided'>
|
13
14
|
|
14
15
|
export const ResolvePayloadProvider: React.FC<WithChildren<ResolvePayloadProviderProps>> = ({ children, huriPayload }) => {
|
15
16
|
const [payload, setPayload] = useState<Payload>()
|
16
17
|
const [huri, setHuri] = useState<string>()
|
17
|
-
const {
|
18
|
+
const {
|
19
|
+
refreshPayload, setRefreshPayload, onRefresh,
|
20
|
+
} = useRefreshPayload()
|
18
21
|
|
19
22
|
useEffect(() => {
|
20
23
|
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
@@ -44,7 +47,9 @@ export const ResolvePayloadProvider: React.FC<WithChildren<ResolvePayloadProvide
|
|
44
47
|
}
|
45
48
|
} catch (e) {
|
46
49
|
const error = e as Error
|
47
|
-
setHuriError({
|
50
|
+
setHuriError({
|
51
|
+
message: error.message, schema: ModuleErrorSchema, sources: [],
|
52
|
+
})
|
48
53
|
}
|
49
54
|
}
|
50
55
|
},
|
@@ -60,7 +65,10 @@ export const ResolvePayloadProvider: React.FC<WithChildren<ResolvePayloadProvide
|
|
60
65
|
|
61
66
|
return (
|
62
67
|
// eslint-disable-next-line @eslint-react/no-unstable-context-value
|
63
|
-
<ResolvePayloadContext.Provider value={{
|
68
|
+
<ResolvePayloadContext.Provider value={{
|
69
|
+
huri, huriError, notFound, payload, provided: true, refreshHuri, setPayload,
|
70
|
+
}}
|
71
|
+
>
|
64
72
|
{children}
|
65
73
|
</ResolvePayloadContext.Provider>
|
66
74
|
)
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import { ModuleError, Payload } from '@xyo-network/payload-model'
|
2
|
-
import { ContextExState } from '@xyo-network/react-shared'
|
3
|
-
import { Dispatch, SetStateAction } from 'react'
|
1
|
+
import type { ModuleError, Payload } from '@xyo-network/payload-model'
|
2
|
+
import type { ContextExState } from '@xyo-network/react-shared'
|
3
|
+
import type { Dispatch, SetStateAction } from 'react'
|
4
4
|
|
5
5
|
export interface ResolvePayloadState extends ContextExState {
|
6
6
|
huri?: string
|