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