|
1 | 1 | import { Passport } from '@imtbl/passport'; |
2 | 2 | import { Box } from '@biom3/react'; |
3 | 3 | import { |
| 4 | + useCallback, |
4 | 5 | useContext, useEffect, useMemo, useRef, useState, |
5 | 6 | } from 'react'; |
6 | 7 | import { |
7 | | - ExchangeType, fetchRiskAssessment, IMTBLWidgetEvents, isAddressSanctioned, |
| 8 | + ExchangeType, IMTBLWidgetEvents, |
8 | 9 | } from '@imtbl/checkout-sdk'; |
9 | 10 | import url from 'url'; |
10 | 11 | import { useTranslation } from 'react-i18next'; |
@@ -74,7 +75,7 @@ export function OnRampMain({ |
74 | 75 |
|
75 | 76 | const { track } = useAnalytics(); |
76 | 77 |
|
77 | | - const trackSegmentEvents = async ( |
| 78 | + const trackSegmentEvents = useCallback(async ( |
78 | 79 | event: TransakEventData, |
79 | 80 | walletAddress: string, |
80 | 81 | ) => { |
@@ -139,9 +140,9 @@ export function OnRampMain({ |
139 | 140 | break; |
140 | 141 | default: |
141 | 142 | } |
142 | | - }; |
| 143 | + }, [isPassport, track]); |
143 | 144 |
|
144 | | - const transakEventHandler = (event: TransakEventData) => { |
| 145 | + const transakEventHandler = useCallback((event: TransakEventData) => { |
145 | 146 | if (eventTimer.current) clearTimeout(eventTimer.current); |
146 | 147 |
|
147 | 148 | if (event.event_id === TransakEvents.TRANSAK_WIDGET_OPEN) { |
@@ -221,32 +222,14 @@ export function OnRampMain({ |
221 | 222 | }, |
222 | 223 | }); |
223 | 224 | } |
224 | | - }; |
| 225 | + }, [viewDispatch, tokenAmount, tokenAddress, viewState.view.data?.amount, viewState.view.data?.tokenAddress]); |
225 | 226 |
|
226 | 227 | useEffect(() => { |
227 | 228 | if (!checkout || !provider) return; |
228 | 229 |
|
229 | 230 | let userWalletAddress = ''; |
230 | 231 |
|
231 | 232 | (async () => { |
232 | | - const walletAddress = await (await provider.getSigner()).getAddress(); |
233 | | - |
234 | | - const assessment = await fetchRiskAssessment([walletAddress], checkout.config); |
235 | | - |
236 | | - if (isAddressSanctioned(assessment)) { |
237 | | - viewDispatch({ |
238 | | - payload: { |
239 | | - type: ViewActions.UPDATE_VIEW, |
240 | | - view: { |
241 | | - type: SharedViews.SERVICE_UNAVAILABLE_ERROR_VIEW, |
242 | | - error: new Error('Sanctioned address'), |
243 | | - }, |
244 | | - }, |
245 | | - }); |
246 | | - |
247 | | - return; |
248 | | - } |
249 | | - |
250 | 233 | const params = { |
251 | 234 | exchangeType: ExchangeType.ONRAMP, |
252 | 235 | browserProvider: provider, |
@@ -279,7 +262,7 @@ export function OnRampMain({ |
279 | 262 | } |
280 | 263 | }; |
281 | 264 | window.addEventListener('message', handleTransakEvents); |
282 | | - }, [checkout, provider, tokenAmount, tokenAddress, passport]); |
| 265 | + }, [checkout, provider, tokenAmount, tokenAddress, passport, trackSegmentEvents, transakEventHandler]); |
283 | 266 |
|
284 | 267 | return ( |
285 | 268 | <Box sx={boxMainStyle(showIframe)}> |
|
0 commit comments