From a6c901c02fc4cdef7a3a11575334a983bf17b28e Mon Sep 17 00:00:00 2001 From: Wukong Sun Date: Tue, 23 Jun 2026 13:08:52 +0800 Subject: [PATCH] fix: mf-6783 restore transak on-ramp via cloudflare session proxy --- cspell.json | 1 + .../src/SiteAdaptor/BuyTokenDialog.tsx | 31 ++++++++++++---- packages/plugins/Transak/src/constants.ts | 3 ++ .../Transak/src/hooks/useTransakURL.ts | 36 ++++++++++++------- .../Transak/src/hooks/useTransakWidgetURL.ts | 30 ++++++++++++++++ packages/plugins/Transak/src/index.ts | 1 + packages/plugins/Transak/src/types.ts | 1 + 7 files changed, 83 insertions(+), 20 deletions(-) create mode 100644 packages/plugins/Transak/src/hooks/useTransakWidgetURL.ts diff --git a/cspell.json b/cspell.json index 52c87c7ab5f4..409710d0e12c 100644 --- a/cspell.json +++ b/cspell.json @@ -255,6 +255,7 @@ "cashtags", "celo", "endregion", + "frameable", "Hrefs", "linkedin", "luma", diff --git a/packages/plugins/Transak/src/SiteAdaptor/BuyTokenDialog.tsx b/packages/plugins/Transak/src/SiteAdaptor/BuyTokenDialog.tsx index 3e66d74e180a..df0ab09d37d8 100644 --- a/packages/plugins/Transak/src/SiteAdaptor/BuyTokenDialog.tsx +++ b/packages/plugins/Transak/src/SiteAdaptor/BuyTokenDialog.tsx @@ -1,8 +1,8 @@ import { InjectedDialog } from '@masknet/shared' -import { DialogContent, IconButton } from '@mui/material' -import { makeStyles } from '@masknet/theme' import { Close as CloseIcon } from '@mui/icons-material' -import { useTransakURL } from '../hooks/useTransakURL.js' +import { DialogContent, IconButton, Stack, Typography } from '@mui/material' +import { LoadingBase, makeStyles } from '@masknet/theme' +import { useTransakWidgetURL } from '../hooks/useTransakWidgetURL.js' const useStyles = makeStyles()((theme) => ({ dialogPaper: { @@ -37,6 +37,11 @@ const useStyles = makeStyles()((theme) => ({ border: 0, borderRadius: 12, }, + status: { + height: 630, + padding: theme.spacing(2), + boxSizing: 'border-box', + }, })) interface BuyTokenDialogProps extends withClasses<'root'> { @@ -50,7 +55,11 @@ export function BuyTokenDialog(props: BuyTokenDialogProps) { const { classes } = useStyles(undefined, { props }) const { code, address, open, onClose } = props - const transakURL = useTransakURL({ + const { + data: widgetUrl, + isLoading: loading, + error, + } = useTransakWidgetURL({ defaultCryptoCurrency: code, walletAddress: address, }) @@ -69,10 +78,18 @@ export function BuyTokenDialog(props: BuyTokenDialogProps) { - {transakURL ? + {loading ? + + + + : error || !widgetUrl ? + + + Transak is temporarily unavailable. Please try again later. + + // eslint-disable-next-line react/dom/no-missing-iframe-sandbox -