diff --git a/public/images/common/mercuryo_logo.svg b/public/images/common/mercuryo_logo.svg
deleted file mode 100644
index ebea5e79ec..0000000000
--- a/public/images/common/mercuryo_logo.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/images/common/moonpay_logo.svg b/public/images/common/moonpay_logo.svg
deleted file mode 100644
index 882e8185a9..0000000000
--- a/public/images/common/moonpay_logo.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/components/common/BuyCryptoButton/index.tsx b/src/components/common/BuyCryptoButton/index.tsx
index 4719d9b27c..1c2f77a4c2 100644
--- a/src/components/common/BuyCryptoButton/index.tsx
+++ b/src/components/common/BuyCryptoButton/index.tsx
@@ -1,20 +1,15 @@
-import EthHashInfo from '@/components/common/EthHashInfo'
-import ModalDialog from '@/components/common/ModalDialog'
-import useSafeInfo from '@/hooks/useSafeInfo'
import { usePathname, useSearchParams } from 'next/navigation'
import Link, { type LinkProps } from 'next/link'
-import { Box, Button, ButtonBase, Divider, Typography } from '@mui/material'
+import { Alert, Box, Button, ButtonBase, Typography } from '@mui/material'
import AddIcon from '@mui/icons-material/Add'
-import { MERCURYO_URL, MOONPAY_URL, SafeAppsTag } from '@/config/constants'
+import { SafeAppsTag } from '@/config/constants'
import { AppRoutes } from '@/config/routes'
import { useRemoteSafeApps } from '@/hooks/safe-apps/useRemoteSafeApps'
import madProps from '@/utils/mad-props'
-import { type ReactNode, useMemo, useState } from 'react'
+import { type ReactNode, useMemo } from 'react'
import Track from '../Track'
import { OVERVIEW_EVENTS } from '@/services/analytics'
import RampLogo from '@/public/images/common/ramp_logo.svg'
-import MercuryoLogo from '@/public/images/common/mercuryo_logo.svg'
-import MoonPayLogo from '@/public/images/common/moonpay_logo.svg'
import css from './styles.module.css'
import ChevronRightRoundedIcon from '@mui/icons-material/ChevronRightRounded'
@@ -51,89 +46,51 @@ const BuyCryptoOption = ({ name, children }: { name: string; children: ReactNode
}
const _BuyCryptoOptions = ({ rampLink }: { rampLink?: LinkProps['href'] }) => {
- const { safeAddress } = useSafeInfo()
-
- const moonPayLink = `${MOONPAY_URL}?defaultCurrencyCode=eth&walletAddress=${safeAddress}`
- const mercuryoLink = MERCURYO_URL
+ if (rampLink) {
+ return (
+
+
+
+ )
+ }
return (
- <>
- {rampLink && (
-
-
- Safe integrated app
-
- )}
-
-
-
-
- >
+
+ Find an on-ramp provider that supports your region and on-ramp funds to your Safe Account address.
+
)
}
-const _BuyCryptoButton = ({ pagePath }: { pagePath: string }) => {
- const [open, setOpen] = useState(false)
- const { safeAddress } = useSafeInfo()
-
- const toggleDialog = () => {
- setOpen((prev) => !prev)
- }
+const _BuyCryptoButton = ({ href, pagePath }: { href?: LinkProps['href']; pagePath: string }) => {
+ if (!href) return null
return (
<>
-
-
- Choose one of the available options
-
-
-
-
-
-
- Make sure to use your correct account address when interacting with these apps:
-
-
-
-
-
-
-
>
)
}
const BuyCryptoButton = madProps(_BuyCryptoButton, {
+ href: useBuyCryptoHref,
pagePath: usePathname,
})
diff --git a/src/components/common/BuyCryptoButton/styles.module.css b/src/components/common/BuyCryptoButton/styles.module.css
index 8f8f43f99e..a2b9784f41 100644
--- a/src/components/common/BuyCryptoButton/styles.module.css
+++ b/src/components/common/BuyCryptoButton/styles.module.css
@@ -4,7 +4,6 @@
border-radius: 6px;
border: 1px solid var(--color-border-light);
width: 100%;
- margin-top: var(--space-2);
color: var(--color-text-primary);
}
@@ -12,16 +11,6 @@
border-color: var(--color-primary-main);
}
-.badge {
- background-color: var(--color-secondary-light);
- color: var(--color-static-main);
- display: inline-block;
- margin-left: var(--space-2);
- margin-top: -1px;
- padding: 4px var(--space-1);
- border-radius: 0 0 4px 4px;
-}
-
@media (max-width: 400px) {
.buyCryptoButton {
width: 100%;
diff --git a/src/components/dashboard/FirstSteps/index.tsx b/src/components/dashboard/FirstSteps/index.tsx
index 1263f5c6cc..4ceb947b7e 100644
--- a/src/components/dashboard/FirstSteps/index.tsx
+++ b/src/components/dashboard/FirstSteps/index.tsx
@@ -1,7 +1,7 @@
import { BuyCryptoOptions } from '@/components/common/BuyCryptoButton'
import EthHashInfo from '@/components/common/EthHashInfo'
import ModalDialog from '@/components/common/ModalDialog'
-import useDismissFirstSteps from '@/components/dashboard/FirstSteps/useDismissFirstSteps'
+import QRCode from '@/components/common/QRCode'
import { TxModalContext } from '@/components/tx-flow'
import { NewTxFlow } from '@/components/tx-flow/flows'
import useBalances from '@/hooks/useBalances'
@@ -12,11 +12,10 @@ import { selectOutgoingTransactions } from '@/store/txHistorySlice'
import classnames from 'classnames'
import { type ReactNode, useContext, useState } from 'react'
import { Card, WidgetBody, WidgetContainer } from '@/components/dashboard/styled'
-import { Box, Button, CircularProgress, Grid, IconButton, Typography } from '@mui/material'
+import { Box, Button, CircularProgress, Divider, Grid, Typography } from '@mui/material'
import CircleOutlinedIcon from '@mui/icons-material/CircleOutlined'
import CheckCircleRoundedIcon from '@mui/icons-material/CheckCircleRounded'
import CheckCircleOutlineRoundedIcon from '@mui/icons-material/CheckCircleOutlineRounded'
-import CloseRoundedIcon from '@mui/icons-material/CloseRounded'
import css from './styles.module.css'
const calculateProgress = (items: boolean[]) => {
@@ -87,19 +86,37 @@ const AddFundsWidget = ({ completed }: { completed: boolean }) => {
hideChainIndicator
>
-
- Add funds directly from your bank account or copy your address to send tokens from a different account.
-
-
-
- Account address
-
-
-
-
+
+
+
+
+
+
+
+
+ Add funds directly from your bank account or copy your address to send tokens from a different
+ account.
+
+
+
+
+
+
+
+
+
+ or
+
- Buy crypto with fiat:
+ Buy crypto with fiat:
@@ -130,10 +147,10 @@ const FirstTransactionWidget = ({ completed }: { completed: boolean }) => {
)
}
-const AccountReadyWidget = ({ completed }: { completed: boolean }) => {
+const AccountReadyWidget = () => {
return (
-
-
+
+
@@ -148,7 +165,6 @@ const FirstSteps = () => {
const { balances } = useBalances()
const { safe } = useSafeInfo()
const outgoingTransactions = useAppSelector(selectOutgoingTransactions)
- const { dismissFirstSteps, setDismissFirstSteps } = useDismissFirstSteps()
const hasNonZeroBalance = balances && (balances.items.length > 1 || BigInt(balances.items[0]?.balance || 0) > 0)
const hasOutgoingTransactions = !!outgoingTransactions && outgoingTransactions.length > 0
@@ -157,11 +173,7 @@ const FirstSteps = () => {
const progress = calculateProgress(completedItems)
const stepsCompleted = completedItems.filter((item) => item).length
- const dismissWidget = () => {
- setDismissFirstSteps(true)
- }
-
- if (dismissFirstSteps) return null
+ if (safe.deployed) return null
return (
@@ -204,13 +216,6 @@ const FirstSteps = () => {
Finish the next steps to start using all Safe Account features:
- {safe.deployed && (
-
-
-
-
-
- )}
@@ -222,7 +227,7 @@ const FirstSteps = () => {
-
+
diff --git a/src/components/dashboard/FirstSteps/styles.module.css b/src/components/dashboard/FirstSteps/styles.module.css
index 9ef4a86ab6..7db5ddf202 100644
--- a/src/components/dashboard/FirstSteps/styles.module.css
+++ b/src/components/dashboard/FirstSteps/styles.module.css
@@ -58,3 +58,11 @@
.checkIcon.completed {
color: var(--color-success-main);
}
+
+.orDivider {
+ display: inline-block;
+ padding: 0 var(--space-3);
+ background: var(--color-background-paper);
+ bottom: -11px;
+ position: relative;
+}
diff --git a/src/components/dashboard/FirstSteps/useDismissFirstSteps.ts b/src/components/dashboard/FirstSteps/useDismissFirstSteps.ts
deleted file mode 100644
index 8c72ba329e..0000000000
--- a/src/components/dashboard/FirstSteps/useDismissFirstSteps.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import useLocalStorage from '@/services/local-storage/useLocalStorage'
-
-const DISMISS_FIRST_STEPS_KEY = 'dismissFirstSteps'
-
-const useDismissFirstSteps = () => {
- const [dismissFirstSteps, setDismissFirstSteps] = useLocalStorage(DISMISS_FIRST_STEPS_KEY)
-
- return { dismissFirstSteps, setDismissFirstSteps }
-}
-
-export default useDismissFirstSteps
diff --git a/src/config/constants.ts b/src/config/constants.ts
index 7960d467c9..7742697469 100644
--- a/src/config/constants.ts
+++ b/src/config/constants.ts
@@ -105,7 +105,3 @@ export const IS_OFFICIAL_HOST = process.env.NEXT_PUBLIC_IS_OFFICIAL_HOST === 'tr
export const REDEFINE_SIMULATION_URL = 'https://dashboard.redefine.net/reports/'
export const REDEFINE_API = process.env.NEXT_PUBLIC_REDEFINE_API
export const REDEFINE_ARTICLE = 'https://safe.mirror.xyz/rInLWZwD_sf7enjoFerj6FIzCYmVMGrrV8Nhg4THdwI'
-
-// On-ramp providers
-export const MOONPAY_URL = 'https://buy.moonpay.com'
-export const MERCURYO_URL = 'https://exchange.mercuryo.io'