Commit 28b154eb authored by Vignesh Mohankumar's avatar Vignesh Mohankumar Committed by GitHub

chore: remove landing redirect flag (#5736)

* test: add tests for landing redirect

* test: add tests for landing page (#5737)

* test: add tests for landing page

* lint

* intro=true

* rm downloads?

* fix: use second config option for no wallet in cypress
Co-authored-by: default avatarEddie Dugan <eddie.dugan@uniswap.org>
Co-authored-by: default avatarEddie Dugan <eddie.dugan@uniswap.org>
parent 3bde2165
import { getTestSelector } from '../utils'
describe('Landing Page', () => { describe('Landing Page', () => {
beforeEach(() => cy.visit('/')) it('shows landing page when no selectedWallet', () => {
it('loads swap page', () => { cy.visit('/', { noWallet: true })
cy.get(getTestSelector('landing-page'))
cy.screenshot()
})
it('redirects to swap page when selectedWallet is INJECTED', () => {
cy.visit('/', { selectedWallet: 'INJECTED' })
cy.get('#swap-page') cy.get('#swap-page')
cy.url().should('include', '/swap')
cy.screenshot() cy.screenshot()
}) })
it('shows landing page when selectedWallet is INJECTED and ?intro=true is in query', () => {
cy.visit('/?intro=true', { selectedWallet: 'INJECTED' })
cy.get(getTestSelector('landing-page'))
})
it('shows landing page when the unicorn icon in nav is selected', () => {
cy.get(getTestSelector('uniswap-logo')).click()
cy.get(getTestSelector('landing-page'))
})
it('allows navigation to pool', () => { it('allows navigation to pool', () => {
cy.get('#pool-nav-link').click() cy.get('#pool-nav-link').click()
cy.url().should('include', '/pool') cy.url().should('include', '/pool')
......
...@@ -20,6 +20,8 @@ declare global { ...@@ -20,6 +20,8 @@ declare global {
interface VisitOptions { interface VisitOptions {
serviceWorker?: true serviceWorker?: true
featureFlags?: Array<FeatureFlag> featureFlags?: Array<FeatureFlag>
selectedWallet?: string
noWallet?: boolean
} }
} }
} }
...@@ -38,7 +40,12 @@ Cypress.Commands.overwrite( ...@@ -38,7 +40,12 @@ Cypress.Commands.overwrite(
onBeforeLoad(win) { onBeforeLoad(win) {
options?.onBeforeLoad?.(win) options?.onBeforeLoad?.(win)
win.localStorage.clear() win.localStorage.clear()
win.localStorage.setItem('redux_localstorage_simple_user', '{"selectedWallet":"INJECTED"}') if (options?.noWallet !== true) {
win.localStorage.setItem(
'redux_localstorage_simple_user',
`{"selectedWallet":"${options?.selectedWallet || 'INJECTED'}"}`
)
}
if (options?.featureFlags) { if (options?.featureFlags) {
const featureFlags = options.featureFlags.reduce( const featureFlags = options.featureFlags.reduce(
......
import { BaseVariant, FeatureFlag, featureFlagSettings, useUpdateFlag } from 'featureFlags' import { BaseVariant, FeatureFlag, featureFlagSettings, useUpdateFlag } from 'featureFlags'
import { useFiatOnrampFlag } from 'featureFlags/flags/fiatOnramp' import { useFiatOnrampFlag } from 'featureFlags/flags/fiatOnramp'
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'
import { useAtomValue, useUpdateAtom } from 'jotai/utils' import { useAtomValue, useUpdateAtom } from 'jotai/utils'
...@@ -210,12 +209,6 @@ export default function FeatureFlagModal() { ...@@ -210,12 +209,6 @@ export default function FeatureFlagModal() {
featureFlag={FeatureFlag.permit2} featureFlag={FeatureFlag.permit2}
label="Permit 2 / Universal Router" label="Permit 2 / Universal Router"
/> />
<FeatureFlagOption
variant={LandingRedirectVariant}
value={useLandingRedirectFlag()}
featureFlag={FeatureFlag.landingRedirect}
label="Landing Page Redirect"
/>
<FeatureFlagOption <FeatureFlagOption
variant={BaseVariant} variant={BaseVariant}
value={useFiatOnrampFlag()} value={useFiatOnrampFlag()}
......
import { Trans } from '@lingui/macro' import { Trans } from '@lingui/macro'
import { useWeb3React } from '@web3-react/core' import { useWeb3React } from '@web3-react/core'
import Web3Status from 'components/Web3Status' import Web3Status from 'components/Web3Status'
import { LandingRedirectVariant, useLandingRedirectFlag } from 'featureFlags/flags/landingRedirect'
import { chainIdToBackendName } from 'graphql/data/util' import { chainIdToBackendName } from 'graphql/data/util'
import { useIsNftPage } from 'hooks/useIsNftPage' import { useIsNftPage } from 'hooks/useIsNftPage'
import { Box } from 'nft/components/Box' import { Box } from 'nft/components/Box'
...@@ -81,7 +80,6 @@ export const PageTabs = () => { ...@@ -81,7 +80,6 @@ export const PageTabs = () => {
const Navbar = () => { const Navbar = () => {
const isNftPage = useIsNftPage() const isNftPage = useIsNftPage()
const navigate = useNavigate() const navigate = useNavigate()
const landingRedirectFlag = useLandingRedirectFlag()
return ( return (
<> <>
...@@ -92,11 +90,12 @@ const Navbar = () => { ...@@ -92,11 +90,12 @@ const Navbar = () => {
<UniIcon <UniIcon
width="48" width="48"
height="48" height="48"
data-testid="uniswap-logo"
className={styles.logo} className={styles.logo}
onClick={() => { onClick={() => {
navigate({ navigate({
pathname: '/', pathname: '/',
search: landingRedirectFlag === LandingRedirectVariant.Enabled ? '?intro=true' : undefined, search: '?intro=true',
}) })
}} }}
/> />
......
...@@ -2,5 +2,4 @@ export enum FeatureFlag { ...@@ -2,5 +2,4 @@ export enum FeatureFlag {
fiatOnramp = 'fiatOnramp', fiatOnramp = 'fiatOnramp',
traceJsonRpc = 'traceJsonRpc', traceJsonRpc = 'traceJsonRpc',
permit2 = 'permit2', permit2 = 'permit2',
landingRedirect = 'landingRedirect',
} }
import { BaseVariant, FeatureFlag, useBaseFlag } from '../index'
export function useLandingRedirectFlag(): BaseVariant {
return useBaseFlag(FeatureFlag.landingRedirect)
}
export { BaseVariant as LandingRedirectVariant }
...@@ -6,7 +6,6 @@ import Card, { CardType } from 'components/About/Card' ...@@ -6,7 +6,6 @@ import Card, { CardType } from 'components/About/Card'
import { MAIN_CARDS, MORE_CARDS } from 'components/About/constants' import { MAIN_CARDS, MORE_CARDS } from 'components/About/constants'
import ProtocolBanner from 'components/About/ProtocolBanner' import ProtocolBanner from 'components/About/ProtocolBanner'
import { BaseButton } from 'components/Button' import { BaseButton } from 'components/Button'
import { LandingRedirectVariant, useLandingRedirectFlag } from 'featureFlags/flags/landingRedirect'
import Swap from 'pages/Swap' import Swap from 'pages/Swap'
import { parse } from 'qs' import { parse } from 'qs'
import { useEffect, useRef, useState } from 'react' import { useEffect, useRef, useState } from 'react'
...@@ -285,7 +284,6 @@ export default function Landing() { ...@@ -285,7 +284,6 @@ export default function Landing() {
const [showContent, setShowContent] = useState(false) const [showContent, setShowContent] = useState(false)
const selectedWallet = useAppSelector((state) => state.user.selectedWallet) const selectedWallet = useAppSelector((state) => state.user.selectedWallet)
const landingRedirectFlag = useLandingRedirectFlag()
const navigate = useNavigate() const navigate = useNavigate()
const queryParams = parse(location.search, { const queryParams = parse(location.search, {
ignoreQueryPrefix: true, ignoreQueryPrefix: true,
...@@ -293,25 +291,19 @@ export default function Landing() { ...@@ -293,25 +291,19 @@ export default function Landing() {
// This can be simplified significantly once the flag is removed! For now being explicit is clearer. // This can be simplified significantly once the flag is removed! For now being explicit is clearer.
useEffect(() => { useEffect(() => {
if (queryParams.intro) { if (queryParams.intro || !selectedWallet) {
setShowContent(true) setShowContent(true)
} else if (selectedWallet) {
if (landingRedirectFlag === LandingRedirectVariant.Enabled) {
navigate('/swap')
} else {
setShowContent(true)
}
} else { } else {
setShowContent(true) navigate('/swap')
} }
}, [navigate, selectedWallet, landingRedirectFlag, queryParams.intro]) }, [navigate, selectedWallet, queryParams.intro])
if (!isOpen) return null if (!isOpen) return null
return ( return (
<Trace page={PageName.LANDING_PAGE} shouldLogImpression> <Trace page={PageName.LANDING_PAGE} shouldLogImpression>
{showContent && ( {showContent && (
<PageContainer isDarkMode={isDarkMode}> <PageContainer isDarkMode={isDarkMode} data-testid="landing-page">
<LandingSwapContainer> <LandingSwapContainer>
<TraceEvent <TraceEvent
events={[BrowserEvent.onClick]} events={[BrowserEvent.onClick]}
......
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