@openocean.finance/widget 1.0.19 → 1.0.20
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/esm/components/Header/NavigationTabs.js +2 -0
- package/dist/esm/components/Header/NavigationTabs.js.map +1 -1
- package/dist/esm/components/Messages/ServeErrorMessage.d.ts +6 -0
- package/dist/esm/components/Messages/ServeErrorMessage.js +10 -0
- package/dist/esm/components/Messages/ServeErrorMessage.js.map +1 -0
- package/dist/esm/components/Messages/WarningMessages.js +3 -0
- package/dist/esm/components/Messages/WarningMessages.js.map +1 -1
- package/dist/esm/components/Messages/useMessageQueue.js +10 -0
- package/dist/esm/components/Messages/useMessageQueue.js.map +1 -1
- package/dist/esm/config/version.d.ts +1 -1
- package/dist/esm/config/version.js +1 -1
- package/dist/esm/hooks/useRoutes.js +2 -0
- package/dist/esm/hooks/useRoutes.js.map +1 -1
- package/dist/esm/services/DebridgeService.js +3 -0
- package/dist/esm/services/DebridgeService.js.map +1 -1
- package/dist/esm/stores/useServerErrorStore.d.ts +4 -0
- package/dist/esm/stores/useServerErrorStore.js +6 -0
- package/dist/esm/stores/useServerErrorStore.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/components/Header/NavigationTabs.tsx +2 -0
- package/src/components/Messages/ServeErrorMessage.tsx +31 -0
- package/src/components/Messages/WarningMessages.tsx +3 -0
- package/src/components/Messages/useMessageQueue.ts +13 -0
- package/src/config/version.ts +1 -1
- package/src/hooks/useRoutes.ts +2 -0
- package/src/services/DebridgeService.ts +3 -0
- package/src/stores/useServerErrorStore.ts +9 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openocean.finance/widget",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.20",
|
|
4
4
|
"description": "Openocean Widget for cross-chain bridging and swapping. It will drive your multi-chain strategy and attract new users from everywhere.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/esm/index.js",
|
|
@@ -6,6 +6,7 @@ import { useFieldValues } from '../../stores/form/useFieldValues.js'
|
|
|
6
6
|
import { useSplitSubvariantStore } from '../../stores/settings/useSplitSubvariantStore.js'
|
|
7
7
|
import { HeaderAppBar } from '../Header/Header.style.js'
|
|
8
8
|
import { Tab, Tabs } from '../Tabs/Tabs.style.js'
|
|
9
|
+
import { useServerErrorStore } from '../../stores/useServerErrorStore.js'
|
|
9
10
|
|
|
10
11
|
export const NavigationTabs = () => {
|
|
11
12
|
const { subvariant } = useWidgetConfig()
|
|
@@ -44,6 +45,7 @@ export const NavigationTabs = () => {
|
|
|
44
45
|
setFieldValue('toToken', '')
|
|
45
46
|
const newState: 'swap' | 'bridge' = value === 0 ? 'swap' : 'bridge'
|
|
46
47
|
setState(newState)
|
|
48
|
+
useServerErrorStore.getState().setError(null)
|
|
47
49
|
}
|
|
48
50
|
|
|
49
51
|
return (
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { WarningRounded } from '@mui/icons-material'
|
|
2
|
+
import { type BoxProps, Typography } from '@mui/material'
|
|
3
|
+
import { AlertMessage } from './AlertMessage.js'
|
|
4
|
+
|
|
5
|
+
interface ServerErrorMessageProps extends BoxProps {
|
|
6
|
+
errorMsg?: String
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const ServerErrorMessage: React.FC<ServerErrorMessageProps> = ({
|
|
10
|
+
errorMsg,
|
|
11
|
+
...props
|
|
12
|
+
}) => {
|
|
13
|
+
return (
|
|
14
|
+
<AlertMessage
|
|
15
|
+
severity="warning"
|
|
16
|
+
icon={<WarningRounded />}
|
|
17
|
+
title={
|
|
18
|
+
<Typography
|
|
19
|
+
variant="body2"
|
|
20
|
+
sx={{
|
|
21
|
+
color: 'text.primary',
|
|
22
|
+
}}
|
|
23
|
+
>
|
|
24
|
+
{errorMsg}
|
|
25
|
+
</Typography>
|
|
26
|
+
}
|
|
27
|
+
multiline
|
|
28
|
+
{...props}
|
|
29
|
+
/>
|
|
30
|
+
)
|
|
31
|
+
}
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
useMessageQueue,
|
|
12
12
|
useStorePriceImpactAcknowledged,
|
|
13
13
|
} from './useMessageQueue.js'
|
|
14
|
+
import { ServerErrorMessage } from './ServeErrorMessage.js'
|
|
14
15
|
|
|
15
16
|
type WarningMessagesProps = BoxProps & {
|
|
16
17
|
route?: Route
|
|
@@ -57,6 +58,8 @@ export const WarningMessages: React.FC<WarningMessagesProps> = ({
|
|
|
57
58
|
return <ToAddressRequiredMessage {...props} />
|
|
58
59
|
}
|
|
59
60
|
return null
|
|
61
|
+
case 'SERVER_ERROR':
|
|
62
|
+
return <ServerErrorMessage errorMsg={messages[0].props?.errorMsg} {...props} />
|
|
60
63
|
default:
|
|
61
64
|
return null
|
|
62
65
|
}
|
|
@@ -7,6 +7,7 @@ import { useGasSufficiencyBridge } from '../../hooks/useGasSufficiencyBridge.js'
|
|
|
7
7
|
import { useIsCompatibleDestinationAccount } from '../../hooks/useIsCompatibleDestinationAccount.js'
|
|
8
8
|
import { usePriceImpact } from '../../hooks/usePriceImpact.js'
|
|
9
9
|
import { useToAddressRequirements } from '../../hooks/useToAddressRequirements.js'
|
|
10
|
+
import { useServerErrorStore } from '../../stores/useServerErrorStore.js'
|
|
10
11
|
|
|
11
12
|
export const useStorePriceImpactAcknowledged = create((set) => ({
|
|
12
13
|
priceImpactAcknowledged: false,
|
|
@@ -17,6 +18,7 @@ export const useStorePriceImpactAcknowledged = create((set) => ({
|
|
|
17
18
|
}
|
|
18
19
|
}),
|
|
19
20
|
}))
|
|
21
|
+
|
|
20
22
|
interface QueuedMessage {
|
|
21
23
|
id: string
|
|
22
24
|
priority: number
|
|
@@ -40,6 +42,8 @@ export const useMessageQueue = (route?: Route, allowInteraction?: boolean) => {
|
|
|
40
42
|
|
|
41
43
|
const { priceImpact } = usePriceImpact(route)
|
|
42
44
|
|
|
45
|
+
const serverErrorMsg = useServerErrorStore((s) => s.error)
|
|
46
|
+
|
|
43
47
|
const messageQueue = useMemo(() => {
|
|
44
48
|
const queue: QueuedMessage[] = []
|
|
45
49
|
|
|
@@ -86,6 +90,14 @@ export const useMessageQueue = (route?: Route, allowInteraction?: boolean) => {
|
|
|
86
90
|
})
|
|
87
91
|
}
|
|
88
92
|
|
|
93
|
+
if (serverErrorMsg) {
|
|
94
|
+
queue.push({
|
|
95
|
+
id: 'SERVER_ERROR',
|
|
96
|
+
priority: 0,
|
|
97
|
+
props: { errorMsg: serverErrorMsg },
|
|
98
|
+
})
|
|
99
|
+
}
|
|
100
|
+
|
|
89
101
|
return queue.sort((a, b) => a.priority - b.priority)
|
|
90
102
|
}, [
|
|
91
103
|
allowInteraction,
|
|
@@ -96,6 +108,7 @@ export const useMessageQueue = (route?: Route, allowInteraction?: boolean) => {
|
|
|
96
108
|
requiredToAddress,
|
|
97
109
|
toAddress,
|
|
98
110
|
priceImpact,
|
|
111
|
+
serverErrorMsg
|
|
99
112
|
])
|
|
100
113
|
|
|
101
114
|
return {
|
package/src/config/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const name = '@openocean.finance/widget'
|
|
2
|
-
export const version = '1.0.
|
|
2
|
+
export const version = '1.0.20'
|
package/src/hooks/useRoutes.ts
CHANGED
|
@@ -20,6 +20,7 @@ import { useIsBatchingSupported } from './useIsBatchingSupported.js'
|
|
|
20
20
|
import { useSwapOnly } from './useSwapOnly.js'
|
|
21
21
|
import { useToken } from './useToken.js'
|
|
22
22
|
import { useWidgetEvents } from './useWidgetEvents.js'
|
|
23
|
+
import { useServerErrorStore } from '../stores/useServerErrorStore.js'
|
|
23
24
|
|
|
24
25
|
const refetchTime = 60_000
|
|
25
26
|
|
|
@@ -178,6 +179,7 @@ export const useRoutes = ({ observableRoute }: RoutesProps = {}) => {
|
|
|
178
179
|
signal,
|
|
179
180
|
}) => {
|
|
180
181
|
try {
|
|
182
|
+
useServerErrorStore.getState().setError(null)
|
|
181
183
|
const fromAmount = parseUnits(fromTokenAmount, fromToken!.decimals)
|
|
182
184
|
const formattedSlippage = slippage
|
|
183
185
|
? (Number.parseFloat(slippage) / 100).toString()
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { encodeAbiParameters, parseAbiParameters } from 'viem'
|
|
2
|
+
import { useServerErrorStore } from '../stores/useServerErrorStore.js'
|
|
2
3
|
|
|
3
4
|
// Type definitions (can be moved to a separate types file if needed)
|
|
4
5
|
interface Asset {
|
|
@@ -508,6 +509,7 @@ export class DebridgeService {
|
|
|
508
509
|
}
|
|
509
510
|
return { data };
|
|
510
511
|
} catch (error: any) {
|
|
512
|
+
useServerErrorStore.getState().setError(error.response?.data?.errorMessage || error.message);
|
|
511
513
|
console.error(
|
|
512
514
|
'Error getting Debridge quote:',
|
|
513
515
|
error.response?.data || error.message
|
|
@@ -758,6 +760,7 @@ export class DebridgeService {
|
|
|
758
760
|
'Error fetching Debridge Solana transaction:',
|
|
759
761
|
error.response?.data || error.message
|
|
760
762
|
)
|
|
763
|
+
useServerErrorStore.getState().setError(error.response?.data?.errorMessage || error.message);
|
|
761
764
|
return null
|
|
762
765
|
}
|
|
763
766
|
}
|