Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
b54a5e7
feat: abstract squid route fetching
jjramirezn Jun 12, 2025
769b541
refactor: use parseunits
jjramirezn Jun 12, 2025
5076156
refactor: remove console.dir
jjramirezn Jun 12, 2025
65eb664
feat: handle very large numbers with careful scaling
jjramirezn Jun 12, 2025
49451d1
refactor: use const for squid api url
jjramirezn Jun 13, 2025
37a248c
feat: add cross-chain action card
jjramirezn Jun 18, 2025
526c84d
Merge remote-tracking branch 'origin/peanut-wallet' into feat/cross-c…
jjramirezn Jun 18, 2025
9c138db
refactor: use decimals from token price instead of hardcoded
jjramirezn Jun 18, 2025
0704210
style: Apply prettier formatting
jjramirezn Jun 18, 2025
67dfe8d
Merge remote-tracking branch 'origin/peanut-wallet-dev' into feat/cor…
jjramirezn Jun 18, 2025
74a01ba
feat: show min received for cross-chain payments
jjramirezn Jun 22, 2025
4eccc76
chore: clean unused variables
jjramirezn Jun 22, 2025
665d9c3
fix: tests ach_pull to ach
jjramirezn Jun 30, 2025
97cdbcf
Merge remote-tracking branch 'origin/peanut-wallet-dev' into feat/cro…
jjramirezn Jun 30, 2025
9d96d70
Merge remote-tracking branch 'origin/peanut-wallet-dev' into feat/cor…
jjramirezn Jun 30, 2025
186d490
Merge branch 'feat/coral-integration' into feat/cross-chain-action-card
jjramirezn Jun 30, 2025
83a5ac8
fix: pr comments
jjramirezn Jun 30, 2025
df106b3
fix: withdrawData and pulsate animation
jjramirezn Jun 30, 2025
4bce37b
fix: cursor placement in token amount input
kushagrasarathe Jun 30, 2025
19aab4e
fix: delete unused code
jjramirezn Jun 30, 2025
c67403d
fix: add camera perm modal
kushagrasarathe Jul 1, 2025
4906a27
fix: enable mexico bank offramp
kushagrasarathe Jul 1, 2025
90d6233
refactor: better comments for direct usd payments
jjramirezn Jul 1, 2025
8c1bcdf
Merge pull request #919 from peanutprotocol/feat/cross-chain-action-card
jjramirezn Jul 1, 2025
ad2fe8e
Merge pull request #919 from peanutprotocol/feat/cross-chain-action-card
jjramirezn Jul 1, 2025
923ddb3
feat: add qr scanning for xchain
jjramirezn Jul 1, 2025
d0cc9a5
Merge branch 'feat/qr-scanning-xchain' into feat/coral-integration
jjramirezn Jul 1, 2025
cca8489
fix: remove malicious code
jjramirezn Jul 1, 2025
46f87b7
Merge pull request #944 from peanutprotocol/feat/coral-integration
jjramirezn Jul 2, 2025
7c4beab
fix: handle mxn in offramp destination details (#945)
kushagrasarathe Jul 3, 2025
5d2799f
fix: show share receipt option in direct send status view (#946)
kushagrasarathe Jul 3, 2025
7a69a61
[TASK-12678] fix: coral withdraw fixes (#949)
jjramirezn Jul 4, 2025
8144f70
fix: lock orientation to portrait mode (#947)
kushagrasarathe Jul 4, 2025
71e47e7
fix: update payment form for crosschain add money (#954)
jjramirezn Jul 5, 2025
0b1af76
[TASK-12682] fix: show token selector for guest flow (#955)
jjramirezn Jul 7, 2025
f3cbec0
implemented Context instead of sessionStorage in onrampData to avoid …
FacuBozzi Jul 7, 2025
63340f2
refactor: fetch external wallet balances from mobula (#956) (#958)
jjramirezn Jul 8, 2025
8e7e89e
[TASK-12645] copy button for individual fields (#960)
FacuBozzi Jul 8, 2025
b1b6247
fix: gas estimation for external wallets (#961)
jjramirezn Jul 8, 2025
aedc3a8
[TASK-12603] reset send flow state when navigating to/from payment li…
FacuBozzi Jul 8, 2025
ba18831
[TASK-12312] ENS/eth address network error being displayed on the fro…
FacuBozzi Jul 8, 2025
42e4dea
fix: centre align views on mobile (#950)
kushagrasarathe Jul 9, 2025
2f14c04
[TASK-12542] added formatIban function for correct display (#952)
FacuBozzi Jul 9, 2025
8bac72d
[TASK-12672] feat: show sponsored by peanut message (#959)
jjramirezn Jul 9, 2025
43ce008
fix: correct approval owner and base rpc (#965)
jjramirezn Jul 9, 2025
f4c2b1c
feat: add alachemy as fallback rpc url (#948)
kushagrasarathe Jul 10, 2025
d16afad
[TASK-12866] fix: small fixes around crosschain ui (#966)
jjramirezn Jul 10, 2025
8de081f
removed white spaces before processing to BIC (#951)
FacuBozzi Jul 10, 2025
e0686e0
feat: resuable slider component (#968)
kushagrasarathe Jul 10, 2025
17a8f0e
fix: update desktop navigation with add/withdraw paths (#969)
kushagrasarathe Jul 10, 2025
e752059
[TASK-11884] request via link with comment and attachment is creating…
FacuBozzi Jul 10, 2025
da30c00
fix: support page staging (#972)
kushagrasarathe Jul 10, 2025
1c8db75
fix: ui comments (#973)
jjramirezn Jul 10, 2025
2c7acd2
Support and beta changes to staging (#978)
jjramirezn Jul 11, 2025
70bc888
[TASK-12312] Bugfix/ens error withdrawing (#976)
FacuBozzi Jul 11, 2025
5186a6b
fix: coral small issues (#979)
jjramirezn Jul 11, 2025
e744e43
chore: enable usdt in mainnet (#980)
jjramirezn Jul 15, 2025
b4266c3
fix: slider tap bug logic (#983)
kushagrasarathe Jul 15, 2025
2351f27
fix: some issues and comments (#984)
jjramirezn Jul 16, 2025
f13deb9
[TASK-12771] Feat/new landing page (#974)
FacuBozzi Jul 16, 2025
a9ab4db
[TASK-13136] feat: allow uppercase in url (#986)
jjramirezn Jul 16, 2025
497e474
fix: inform create request type when creating from UI (#987)
jjramirezn Jul 16, 2025
64bbc81
fix: balance warning modal (#988)
jjramirezn Jul 16, 2025
66f0d03
chore: remove unused file (#990)
jjramirezn Jul 16, 2025
041e721
feat: send links guest flow ( exchange/crypto) (#982)
kushagrasarathe Jul 16, 2025
4c2efba
Chore/prod to staging (#994)
jjramirezn Jul 16, 2025
cd33ccd
refactor(payments): add payerAddress to payment creation (#1002)
jjramirezn Jul 22, 2025
40fd539
feat: claim a send link to bank flow (#995)
kushagrasarathe Jul 22, 2025
f87bb83
[TASK-12649] fix: allow user to change their email address if they ha…
jjramirezn Jul 22, 2025
8520b4f
Feat: Landing page changes (#1006)
Zishan-7 Jul 22, 2025
18b41e4
fix: links v2 send flow qa fixes (#1008)
kushagrasarathe Jul 23, 2025
127d74e
fix: links v2 qa bug fixes (#1014)
kushagrasarathe Jul 24, 2025
e6a3d9d
fix: coral issue on staging (#1018)
kushagrasarathe Jul 25, 2025
91d2773
Make txn history private (#1017)
Zishan-7 Jul 25, 2025
a00213a
chore: update mobula endpoint (#1020)
kushagrasarathe Jul 26, 2025
d7278bb
fix: minor bugs before prod-release (#1025)
kushagrasarathe Jul 28, 2025
c7ea6ea
fix: reset states on flows (#1026)
kushagrasarathe Jul 28, 2025
c01fbd8
merge: peanut-wallet in peanut-wallet-dev
kushagrasarathe Jul 29, 2025
77981c2
fix: remove dupe title
kushagrasarathe Jul 29, 2025
b49828b
merge: peanut-wallet in peanut-wallet-dev (#1032)
kushagrasarathe Jul 29, 2025
4e50b2c
Merge branch 'fix/merge-conflicts' into peanut-wallet-dev
kushagrasarathe Jul 29, 2025
c132a97
resolve merge conflicts between prod and staging
kushagrasarathe Jul 29, 2025
433765e
Fix KYC issues (#1029)
Zishan-7 Jul 30, 2025
92bf260
Fix: add money button position (#1031)
Zishan-7 Jul 30, 2025
2ef991f
fix: Wrong flag shown in add monet flow for some countries (#1027)
Zishan-7 Jul 30, 2025
2785af1
fix(kernel-client): catch kernel client errors (#1036)
jjramirezn Jul 30, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 12 additions & 24 deletions src/app/(mobile-ui)/add-money/[country]/bank/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import { UserDetailsForm, type UserDetailsFormData } from '@/components/AddMoney
import { updateUserById } from '@/app/actions/users'
import AddMoneyBankDetails from '@/components/AddMoney/components/AddMoneyBankDetails'
import { getOnrampCurrencyConfig, getCurrencySymbol, getMinimumAmount } from '@/utils/bridge.utils'
import { Slider } from '@/components/Slider'

type AddStep = 'inputAmount' | 'kyc' | 'loading' | 'collectUserDetails' | 'showDetails'

Expand Down Expand Up @@ -97,14 +98,9 @@ export default function OnrampBankPage() {
if (step === 'loading') {
const currentKycStatus = liveKycStatus || user?.user.kycStatus
const isUserKycVerified = currentKycStatus === 'approved'
const hasUserDetails = user?.user.fullName && user?.user.email

if (!isUserKycVerified) {
if (hasUserDetails) {
setStep('kyc')
} else {
setStep('collectUserDetails')
}
setStep('collectUserDetails')
} else {
setStep('inputAmount')
if (amountFromContext && !rawTokenAmount) {
Expand Down Expand Up @@ -388,28 +384,20 @@ export default function OnrampBankPage() {
title="IMPORTANT!"
description={
<>
In the following step you'll see a <strong>"Deposit Message" item</strong>, copy and paste
it exactly as it is on the description field of your transfer.
In the following step you'll see a <br /> <strong>"Deposit Message" item</strong> <br />{' '}
copy and paste it exactly as it is on <br /> the description field of your transfer.
<br />
<br />
<strong>Without it, we won't be able to credit your money.</strong>
<strong>
Without it your deposit will be returned and might take 2-10 working days to process.
</strong>
</>
}
checkbox={{
text: 'I understand and accept the risk.',
checked: isRiskAccepted,
onChange: setIsRiskAccepted,
}}
ctas={[
{
text: 'Continue',
variant: isRiskAccepted ? 'purple' : 'dark',
shadowSize: '4',
onClick: handleWarningConfirm,
disabled: !isRiskAccepted,
className: 'w-full',
},
]}
footer={
<div className="w-full">
<Slider onValueChange={(v) => v && handleWarningConfirm()} />
</div>
}
preventClose={false}
modalPanelClassName="max-w-md mx-8"
/>
Expand Down
10 changes: 8 additions & 2 deletions src/app/(mobile-ui)/add-money/crypto/direct/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

import PaymentPage from '@/app/[...recipient]/client'
import PeanutLoading from '@/components/Global/PeanutLoading'
import { useUserStore } from '@/redux/hooks'
import { useAppDispatch, useUserStore } from '@/redux/hooks'
import { paymentActions } from '@/redux/slices/payment-slice'
import { useRouter, useSearchParams } from 'next/navigation'
import { useEffect, useState } from 'react'

Expand All @@ -12,6 +13,11 @@ export default function AddMoneyCryptoDirectPage() {
const { user } = useUserStore()
const [recipientUsername, setRecipientUsername] = useState<string | null>(null)
const [isLoading, setIsLoading] = useState(true)
const dispatch = useAppDispatch()

useEffect(() => {
dispatch(paymentActions.resetPaymentState())
}, [dispatch])

useEffect(() => {
if (user?.user.username) {
Expand All @@ -21,7 +27,7 @@ export default function AddMoneyCryptoDirectPage() {
return
}
setIsLoading(false)
}, [searchParams, router])
}, [searchParams, router, user])

if (isLoading) {
return <PeanutLoading />
Expand Down
47 changes: 20 additions & 27 deletions src/app/(mobile-ui)/add-money/crypto/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ import NetworkSelectionView, { SelectedNetwork } from '@/components/AddMoney/vie
import TokenSelectionView from '@/components/AddMoney/views/TokenSelection.view'
import ActionModal from '@/components/Global/ActionModal'
import NavHeader from '@/components/Global/NavHeader'
import { Slider } from '@/components/Slider'
import { useWallet } from '@/hooks/wallet/useWallet'
import { useRouter } from 'next/navigation'
import { useState } from 'react'
import { twMerge } from 'tailwind-merge'
import { useEffect, useState } from 'react'

type AddMoneyCryptoStep = 'sourceSelection' | 'tokenSelection' | 'networkSelection' | 'riskModal' | 'qrScreen'

Expand All @@ -22,6 +22,12 @@ const AddMoneyCryptoPage = () => {
const [selectedNetwork, setSelectedNetwork] = useState<SelectedNetwork | null>(null)
const [isRiskAccepted, setIsRiskAccepted] = useState(false)

useEffect(() => {
if (isRiskAccepted) {
setCurrentStep('qrScreen')
}
}, [isRiskAccepted])

const handleCryptoSourceSelected = (source: CryptoSource) => {
setSelectedSource(source)
setCurrentStep('tokenSelection')
Expand All @@ -38,12 +44,6 @@ const AddMoneyCryptoPage = () => {
setCurrentStep('riskModal')
}

const handleRiskContinue = () => {
if (isRiskAccepted) {
setCurrentStep('qrScreen')
}
}

const resetSelections = () => {
setSelectedToken(null)
setSelectedNetwork(null)
Expand Down Expand Up @@ -88,26 +88,19 @@ const AddMoneyCryptoPage = () => {
visible={true}
onClose={handleBackToNetworkSelectionFromRisk}
icon={'alert'}
iconContainerClassName="bg-yellow-1"
title={`Only send ${selectedToken.symbol} on ${selectedNetwork.name}`}
description="Sending funds via any other network will result in a permanent loss of funds. Peanut is not responsible for any loss of funds due to incorrect network selection."
checkbox={{
text: 'I understand and accept the risk.',
checked: isRiskAccepted,
onChange: setIsRiskAccepted,
}}
ctas={[
{
text: 'Continue',
onClick: handleRiskContinue,
disabled: !isRiskAccepted,
variant: isRiskAccepted ? 'purple' : 'stroke',
shadowSize: '4',
className: twMerge(
!isRiskAccepted ? 'border-grey-2 text-grey-2' : '',
'text-black border border-black h-11 hover:text-black'
),
},
]}
description={
<span className="text-sm">
Sending funds via any other network will result in a <b>permanent loss.</b>
</span>
}
footer={
<div className="w-full">
<Slider onValueChange={(v) => v && setIsRiskAccepted(true)} />
</div>
}
ctas={[]}
modalPanelClassName="max-w-xs"
/>
)}
Expand Down
48 changes: 45 additions & 3 deletions src/app/(mobile-ui)/home/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ import FloatingReferralButton from '@/components/Home/FloatingReferralButton'
import { AccountType } from '@/interfaces'
import { formatUnits } from 'viem'
import { PEANUT_WALLET_TOKEN_DECIMALS } from '@/constants'
import { PostSignupActionManager } from '@/components/Global/PostSignupActionManager'
import { useGuestFlow } from '@/context/GuestFlowContext'

const BALANCE_WARNING_THRESHOLD = parseInt(process.env.NEXT_PUBLIC_BALANCE_WARNING_THRESHOLD ?? '500')
const BALANCE_WARNING_EXPIRY = parseInt(process.env.NEXT_PUBLIC_BALANCE_WARNING_EXPIRY ?? '1814400') // 21 days in seconds
Expand All @@ -45,6 +47,7 @@ export default function Home() {
const { balance, address, isFetchingBalance, isFetchingRewardBalance } = useWallet()
const { rewardWalletBalance } = useWalletStore()
const [isRewardsModalOpen, setIsRewardsModalOpen] = useState(false)
const { resetGuestFlow } = useGuestFlow()
const [isBalanceHidden, setIsBalanceHidden] = useState(() => {
const prefs = getUserPreferences()
return prefs?.balanceHidden ?? false
Expand All @@ -60,6 +63,7 @@ export default function Home() {
const [showAddMoneyPromptModal, setShowAddMoneyPromptModal] = useState(false)
const [showBalanceWarningModal, setShowBalanceWarningModal] = useState(false)
const [showReferralCampaignModal, setShowReferralCampaignModal] = useState(false)
const [isPostSignupActionModalVisible, setIsPostSignupActionModalVisible] = useState(false)

const userFullName = useMemo(() => {
if (!user) return
Expand All @@ -77,6 +81,10 @@ export default function Home() {

const isLoading = isFetchingUser && !username

useEffect(() => {
resetGuestFlow()
}, [resetGuestFlow])

useEffect(() => {
// We have some users that didn't have the peanut wallet created
// correctly, so we need to create it
Expand Down Expand Up @@ -104,15 +112,45 @@ export default function Home() {
(navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)
const isStandalone = window.matchMedia('(display-mode: standalone)').matches
const hasSeenModalThisSession = sessionStorage.getItem('hasSeenIOSPWAPromptThisSession')
const redirectUrl = getFromLocalStorage('redirect')

if (isIOS && !isStandalone && !hasSeenModalThisSession && !user?.hasPwaInstalled) {
if (
isIOS &&
!isStandalone &&
!hasSeenModalThisSession &&
!user?.hasPwaInstalled &&
!isPostSignupActionModalVisible &&
!redirectUrl
) {
setShowIOSPWAInstallModal(true)
sessionStorage.setItem('hasSeenIOSPWAPromptThisSession', 'true')
} else {
setShowIOSPWAInstallModal(false)
}
}
}, [user?.hasPwaInstalled])
}, [user?.hasPwaInstalled, isPostSignupActionModalVisible])

// effect for showing balance warning modal
useEffect(() => {
if (typeof window !== 'undefined' && !isFetchingBalance) {
const hasSeenBalanceWarning = getFromLocalStorage('hasSeenBalanceWarning')
const balanceInUsd = Number(formatUnits(balance, PEANUT_WALLET_TOKEN_DECIMALS))

// show if:
// 1. balance is above the threshold
// 2. user hasn't seen this warning in the current session
// 3. no other modals are currently active
if (
balanceInUsd > BALANCE_WARNING_THRESHOLD &&
!hasSeenBalanceWarning &&
!showIOSPWAInstallModal &&
!showAddMoneyPromptModal &&
!isPostSignupActionModalVisible
) {
setShowBalanceWarningModal(true)
}
}
}, [balance, isFetchingBalance, showIOSPWAInstallModal, showAddMoneyPromptModal])

// effect for showing balance warning modal
useEffect(() => {
Expand Down Expand Up @@ -151,7 +189,8 @@ export default function Home() {
balance === 0n &&
!hasSeenAddMoneyPromptThisSession &&
!showIOSPWAInstallModal &&
!showBalanceWarningModal
!showBalanceWarningModal &&
!isPostSignupActionModalVisible
) {
setShowAddMoneyPromptModal(true)
sessionStorage.setItem('hasSeenAddMoneyPromptThisSession', 'true')
Expand Down Expand Up @@ -236,6 +275,9 @@ export default function Home() {

{/* Floating Referral Button */}
<FloatingReferralButton onClick={() => setShowReferralCampaignModal(true)} />

{/* Post Signup Action Modal */}
<PostSignupActionManager onActionModalVisibilityChange={setIsPostSignupActionModalVisible} />
</PageContainer>
)
}
Expand Down
7 changes: 3 additions & 4 deletions src/app/(mobile-ui)/layout.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
'use client'

import { MarqueeWrapper } from '@/components/Global/MarqueeWrapper'
import { useRouter } from 'next/navigation'
import { HandThumbsUp } from '@/assets'
import Image from 'next/image'
import GuestLoginModal from '@/components/Global/GuestLoginModal'
import PeanutLoading from '@/components/Global/PeanutLoading'
import TopNavbar from '@/components/Global/TopNavbar'
Expand All @@ -17,9 +20,6 @@ import PullToRefresh from 'pulltorefreshjs'
import { useEffect, useMemo, useState } from 'react'
import { twMerge } from 'tailwind-merge'
import '../../styles/globals.css'
import { MarqueeWrapper } from '@/components/Global/MarqueeWrapper'
import Image from 'next/image'
import { HandThumbsUp } from '@/assets'

const publicPathRegex = /^\/(request\/pay|claim|pay\/.+$)/

Expand Down Expand Up @@ -114,7 +114,6 @@ const Layout = ({ children }: { children: React.ReactNode }) => {
</MarqueeWrapper>
</button>
)}

{/* Fixed top navbar */}
{showFullPeanutWallet && (
<div className="sticky top-0 z-10 w-full">
Expand Down
34 changes: 16 additions & 18 deletions src/app/(mobile-ui)/withdraw/crypto/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import { useRouter } from 'next/navigation'
import { useCallback, useEffect, useMemo } from 'react'
import { captureMessage } from '@sentry/nextjs'
import type { Address } from 'viem'
import { Slider } from '@/components/Slider'

export default function WithdrawCryptoPage() {
const router = useRouter()
Expand Down Expand Up @@ -77,6 +78,10 @@ export default function WithdrawCryptoPage() {
setError(null)
}, [setError])

useEffect(() => {
dispatch(paymentActions.resetPaymentState())
}, [dispatch])

useEffect(() => {
if (!amountToWithdraw) {
console.error('Amount not available in WithdrawFlowContext for withdrawal, redirecting.')
Expand Down Expand Up @@ -264,13 +269,6 @@ export default function WithdrawCryptoPage() {
const fromChainId = isPeanutWallet ? PEANUT_WALLET_CHAIN.id.toString() : withdrawData.chain.chainId
const toChainId = activeChargeDetailsFromStore.chainId

console.log('Cross-chain check:', {
fromChainId,
toChainId,
isPeanutWallet,
isCrossChain: fromChainId !== toChainId,
})

return fromChainId !== toChainId
}, [withdrawData, activeChargeDetailsFromStore, isPeanutWallet])

Expand Down Expand Up @@ -345,7 +343,7 @@ export default function WithdrawCryptoPage() {
headerTitle="Withdraw"
recipientType="ADDRESS"
type="SEND"
currencyAmount={`$ ${amountToWithdraw}`}
amount={amountToWithdraw}
isWithdrawFlow={true}
redirectTo="/withdraw"
message={
Expand All @@ -368,16 +366,16 @@ export default function WithdrawCryptoPage() {
title="Is this address compatible?"
description="Only send to address that support the selected network and token. Incorrect transfers may be lost."
icon="alert"
ctas={[
{
text: 'Proceed',
onClick: handleCompatibilityProceed,
variant: 'purple',
shadowSize: '4',
className: 'h-10 text-sm',
icon: 'check-circle',
},
]}
footer={
<div className="w-full">
<Slider
onValueChange={(v: boolean) => {
if (!v) return
handleCompatibilityProceed()
}}
/>
</div>
}
/>
</div>
)
Expand Down
3 changes: 3 additions & 0 deletions src/app/[...recipient]/client.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -389,6 +389,7 @@ export default function PaymentPage({ recipient, flow = 'request_pay' }: Props)
<div className={twMerge('mx-auto h-full min-h-[inherit] w-full space-y-8 self-center')}>
{currentView === 'INITIAL' && (
<InitialPaymentView
key={`initial-${flow}`}
{...(parsedPaymentData as ParsedURL)}
isAddMoneyFlow={isAddMoneyFlow}
isDirectUsdPayment={isDirectPay}
Expand All @@ -407,6 +408,7 @@ export default function PaymentPage({ recipient, flow = 'request_pay' }: Props)
)}
{currentView === 'CONFIRM' && (
<ConfirmPaymentView
key={`confirm-${flow}`}
isPintaReq={parsedPaymentData?.token?.symbol === 'PNT'}
currencyAmount={currencyCode && currencyAmount ? `${currencySymbol} ${currencyAmount}` : undefined}
isAddMoneyFlow={isAddMoneyFlow}
Expand All @@ -421,6 +423,7 @@ export default function PaymentPage({ recipient, flow = 'request_pay' }: Props)
<TransactionDetailsReceipt transaction={selectedTransaction} />
) : (
<DirectSuccessView
key={`success-${flow}`}
headerTitle={isAddMoneyFlow ? 'Add Money' : 'Send'}
recipientType={parsedPaymentData?.recipient?.recipientType}
type="SEND"
Expand Down
Loading
Loading