Commit 86e62dc4 authored by Jordan Frankfurt's avatar Jordan Frankfurt

add back feature flag

parent 8cbd111e
import { BaseVariant, FeatureFlag, featureFlagSettings, useUpdateFlag } from 'featureFlags' import { BaseVariant, FeatureFlag, featureFlagSettings, useUpdateFlag } from 'featureFlags'
import { useFiatOnrampFlag } from 'featureFlags/flags/fiatOnramp'
import { LandingRedirectVariant, useLandingRedirectFlag } from 'featureFlags/flags/landingRedirect' import { LandingRedirectVariant, useLandingRedirectFlag } from 'featureFlags/flags/landingRedirect'
import { Permit2Variant, usePermit2Flag } from 'featureFlags/flags/permit2' import { Permit2Variant, usePermit2Flag } from 'featureFlags/flags/permit2'
import { TraceJsonRpcVariant, useTraceJsonRpcFlag } from 'featureFlags/flags/traceJsonRpc' import { TraceJsonRpcVariant, useTraceJsonRpcFlag } from 'featureFlags/flags/traceJsonRpc'
...@@ -215,6 +216,12 @@ export default function FeatureFlagModal() { ...@@ -215,6 +216,12 @@ export default function FeatureFlagModal() {
featureFlag={FeatureFlag.landingRedirect} featureFlag={FeatureFlag.landingRedirect}
label="Landing Page Redirect" label="Landing Page Redirect"
/> />
<FeatureFlagOption
variant={BaseVariant}
value={useFiatOnrampFlag()}
featureFlag={FeatureFlag.fiatOnramp}
label="Fiat on-ramp"
/>
<FeatureFlagGroup name="Debug"> <FeatureFlagGroup name="Debug">
<FeatureFlagOption <FeatureFlagOption
variant={TraceJsonRpcVariant} variant={TraceJsonRpcVariant}
......
import { Trans } from '@lingui/macro' import { Trans } from '@lingui/macro'
import { useWeb3React } from '@web3-react/core' import { useWeb3React } from '@web3-react/core'
import fiatMaskUrl from 'assets/svg/fiat_mask.svg' import fiatMaskUrl from 'assets/svg/fiat_mask.svg'
import { BaseVariant } from 'featureFlags'
import { useFiatOnrampFlag } from 'featureFlags/flags/fiatOnramp'
import { useCallback, useEffect, useState } from 'react' import { useCallback, useEffect, useState } from 'react'
import { X } from 'react-feather' import { X } from 'react-feather'
import { useToggleWalletDropdown } from 'state/application/hooks' import { useToggleWalletDropdown } from 'state/application/hooks'
...@@ -115,11 +117,13 @@ export function FiatOnrampAnnouncement() { ...@@ -115,11 +117,13 @@ export function FiatOnrampAnnouncement() {
acknowledge({ user: true }) acknowledge({ user: true })
}, [acknowledge, toggleWalletDropdown]) }, [acknowledge, toggleWalletDropdown])
const fiatOnrampFlag = useFiatOnrampFlag()
const openModal = useAppSelector((state) => state.application.openModal) const openModal = useAppSelector((state) => state.application.openModal)
if ( if (
!account || !account ||
acks?.user || acks?.user ||
fiatOnrampFlag === BaseVariant.Control ||
locallyDismissed || locallyDismissed ||
sessionStorage.getItem(ANNOUNCEMENT_DISMISSED) || sessionStorage.getItem(ANNOUNCEMENT_DISMISSED) ||
acks.renderCount >= MAX_RENDER_COUNT || acks.renderCount >= MAX_RENDER_COUNT ||
......
...@@ -2,6 +2,8 @@ import { useWeb3React } from '@web3-react/core' ...@@ -2,6 +2,8 @@ import { useWeb3React } from '@web3-react/core'
import AddressClaimModal from 'components/claim/AddressClaimModal' import AddressClaimModal from 'components/claim/AddressClaimModal'
import ConnectedAccountBlocked from 'components/ConnectedAccountBlocked' import ConnectedAccountBlocked from 'components/ConnectedAccountBlocked'
import FiatOnrampModal from 'components/FiatOnrampModal' import FiatOnrampModal from 'components/FiatOnrampModal'
import { BaseVariant } from 'featureFlags'
import { useFiatOnrampFlag } from 'featureFlags/flags/fiatOnramp'
import useAccountRiskCheck from 'hooks/useAccountRiskCheck' import useAccountRiskCheck from 'hooks/useAccountRiskCheck'
import { lazy } from 'react' import { lazy } from 'react'
import { useModalIsOpen, useToggleModal } from 'state/application/hooks' import { useModalIsOpen, useToggleModal } from 'state/application/hooks'
...@@ -18,6 +20,8 @@ export default function TopLevelModals() { ...@@ -18,6 +20,8 @@ export default function TopLevelModals() {
const { account } = useWeb3React() const { account } = useWeb3React()
useAccountRiskCheck(account) useAccountRiskCheck(account)
const accountBlocked = Boolean(blockedAccountModalOpen && account) const accountBlocked = Boolean(blockedAccountModalOpen && account)
const fiatOnrampFlagEnabled = useFiatOnrampFlag() === BaseVariant.Enabled
return ( return (
<> <>
<AddressClaimModal isOpen={addressClaimOpen} onDismiss={addressClaimToggle} /> <AddressClaimModal isOpen={addressClaimOpen} onDismiss={addressClaimToggle} />
...@@ -25,7 +29,7 @@ export default function TopLevelModals() { ...@@ -25,7 +29,7 @@ export default function TopLevelModals() {
<Bag /> <Bag />
<TransactionCompleteModal /> <TransactionCompleteModal />
<AirdropModal /> <AirdropModal />
<FiatOnrampModal /> {fiatOnrampFlagEnabled && <FiatOnrampModal />}
</> </>
) )
} }
...@@ -7,6 +7,8 @@ import Tooltip from 'components/Tooltip' ...@@ -7,6 +7,8 @@ import Tooltip from 'components/Tooltip'
import { getConnection } from 'connection/utils' import { getConnection } from 'connection/utils'
import { getChainInfoOrDefault } from 'constants/chainInfo' import { getChainInfoOrDefault } from 'constants/chainInfo'
import { SupportedChainId } from 'constants/chains' import { SupportedChainId } from 'constants/chains'
import { BaseVariant } from 'featureFlags'
import { useFiatOnrampFlag } from 'featureFlags/flags/fiatOnramp'
import useCopyClipboard from 'hooks/useCopyClipboard' import useCopyClipboard from 'hooks/useCopyClipboard'
import useStablecoinPrice from 'hooks/useStablecoinPrice' import useStablecoinPrice from 'hooks/useStablecoinPrice'
import useNativeCurrency from 'lib/hooks/useNativeCurrency' import useNativeCurrency from 'lib/hooks/useNativeCurrency'
...@@ -226,6 +228,7 @@ const AuthenticatedHeader = () => { ...@@ -226,6 +228,7 @@ const AuthenticatedHeader = () => {
closeModal() closeModal()
}, [clearCollectionFilters, closeModal, navigate, resetSellAssets, setSellPageState]) }, [clearCollectionFilters, closeModal, navigate, resetSellAssets, setSellPageState])
const fiatOnrampFlag = useFiatOnrampFlag()
// animate the border of the buy crypto button when a user navigates here from the feature announcement // animate the border of the buy crypto button when a user navigates here from the feature announcement
// can be removed when components/FiatOnrampAnnouncment.tsx is no longer used // can be removed when components/FiatOnrampAnnouncment.tsx is no longer used
const [acknowledgements, acknowledge] = useFiatOnrampAck() const [acknowledgements, acknowledge] = useFiatOnrampAck()
...@@ -312,42 +315,44 @@ const AuthenticatedHeader = () => { ...@@ -312,42 +315,44 @@ const AuthenticatedHeader = () => {
> >
<Trans>View and sell NFTs</Trans> <Trans>View and sell NFTs</Trans>
</ProfileButton> </ProfileButton>
<> {fiatOnrampFlag === BaseVariant.Enabled && (
<BuyCryptoButton <>
$animateBorder={animateBuyCryptoButtonBorder} <BuyCryptoButton
size={ButtonSize.medium} $animateBorder={animateBuyCryptoButtonBorder}
emphasis={ButtonEmphasis.medium} size={ButtonSize.medium}
onClick={handleBuyCryptoClick} emphasis={ButtonEmphasis.medium}
disabled={disableBuyCryptoButton} onClick={handleBuyCryptoClick}
> disabled={disableBuyCryptoButton}
{error ? ( >
<ThemedText.BodyPrimary>{error}</ThemedText.BodyPrimary> {error ? (
) : ( <ThemedText.BodyPrimary>{error}</ThemedText.BodyPrimary>
<> ) : (
{fiatOnrampAvailabilityLoading ? <StyledLoadingButtonSpinner /> : <CreditCard />}{' '} <>
<Trans>Buy crypto</Trans> {fiatOnrampAvailabilityLoading ? <StyledLoadingButtonSpinner /> : <CreditCard />}{' '}
</> <Trans>Buy crypto</Trans>
)} </>
</BuyCryptoButton> )}
{Boolean(!fiatOnrampAvailable && fiatOnrampAvailabilityChecked) && ( </BuyCryptoButton>
<FiatOnrampNotAvailableText marginTop="8px"> {Boolean(!fiatOnrampAvailable && fiatOnrampAvailabilityChecked) && (
<Trans>Not available in your region</Trans> <FiatOnrampNotAvailableText marginTop="8px">
<Tooltip <Trans>Not available in your region</Trans>
show={showFiatOnrampUnavailableTooltip} <Tooltip
text={<Trans>Moonpay is not available in some regions. Click to learn more.</Trans>} show={showFiatOnrampUnavailableTooltip}
> text={<Trans>Moonpay is not available in some regions. Click to learn more.</Trans>}
<FiatOnrampAvailabilityExternalLink
onMouseEnter={openFiatOnrampUnavailableTooltip}
onMouseLeave={closeFiatOnrampUnavailableTooltip}
style={{ color: 'inherit' }}
href="https://support.uniswap.org/hc/en-us/articles/10966551707533-Why-is-MoonPay-not-supported-in-my-region-"
> >
<StyledInfoIcon /> <FiatOnrampAvailabilityExternalLink
</FiatOnrampAvailabilityExternalLink> onMouseEnter={openFiatOnrampUnavailableTooltip}
</Tooltip> onMouseLeave={closeFiatOnrampUnavailableTooltip}
</FiatOnrampNotAvailableText> style={{ color: 'inherit' }}
)} href="https://support.uniswap.org/hc/en-us/articles/10966551707533-Why-is-MoonPay-not-supported-in-my-region-"
</> >
<StyledInfoIcon />
</FiatOnrampAvailabilityExternalLink>
</Tooltip>
</FiatOnrampNotAvailableText>
)}
</>
)}
{isUnclaimed && ( {isUnclaimed && (
<UNIButton onClick={openClaimModal} size={ButtonSize.medium} emphasis={ButtonEmphasis.medium}> <UNIButton onClick={openClaimModal} size={ButtonSize.medium} emphasis={ButtonEmphasis.medium}>
<Trans>Claim</Trans> {unclaimedAmount?.toFixed(0, { groupSeparator: ',' } ?? '-')} <Trans>reward</Trans> <Trans>Claim</Trans> {unclaimedAmount?.toFixed(0, { groupSeparator: ',' } ?? '-')} <Trans>reward</Trans>
......
import { BaseVariant, FeatureFlag, useBaseFlag } from '../index'
export function useFiatOnrampFlag(): BaseVariant {
return useBaseFlag(FeatureFlag.fiatOnramp)
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment