From 19dd794b9eb65c9ed22d7bd9d0ee290f2c7be50b Mon Sep 17 00:00:00 2001 From: tom Date: Mon, 26 Aug 2024 18:55:32 +0200 Subject: [PATCH 01/10] limit content width for horizontal menu layout --- ui/shared/layout/components/MainArea.tsx | 4 + ui/shared/layout/components/MainColumn.tsx | 2 +- ui/shared/layout/utils.ts | 3 + ui/snippets/footer/Footer.tsx | 138 ++++++++++-------- .../horizontal/NavigationDesktop.tsx | 53 +++---- ui/snippets/topBar/TopBar.tsx | 50 ++++--- 6 files changed, 137 insertions(+), 113 deletions(-) create mode 100644 ui/shared/layout/utils.ts diff --git a/ui/shared/layout/components/MainArea.tsx b/ui/shared/layout/components/MainArea.tsx index c28d285715..632939e5db 100644 --- a/ui/shared/layout/components/MainArea.tsx +++ b/ui/shared/layout/components/MainArea.tsx @@ -3,6 +3,8 @@ import React from 'react'; import config from 'configs/app'; +import { CONTENT_MAX_WIDTH } from '../utils'; + interface Props { children: React.ReactNode; className?: string; @@ -16,6 +18,8 @@ const MainArea = ({ children, className }: Props) => { { className={ className } flexDir="column" flexGrow={ 1 } - w={{ base: '100%', lg: 'auto' }} + w={{ base: '100%', lg: config.UI.navigation.layout === 'horizontal' ? '100%' : 'auto' }} paddingX={{ base: 3, lg: config.UI.navigation.layout === 'horizontal' ? 6 : 12 }} paddingTop={{ base: `${ 12 + 52 }px`, lg: 6 }} // 12px is top padding of content area, 52px is search bar height paddingBottom={ 8 } diff --git a/ui/shared/layout/utils.ts b/ui/shared/layout/utils.ts new file mode 100644 index 0000000000..3b1b9f474a --- /dev/null +++ b/ui/shared/layout/utils.ts @@ -0,0 +1,3 @@ +import config from 'configs/app'; + +export const CONTENT_MAX_WIDTH = config.UI.navigation.layout === 'horizontal' ? 1440 : 1512; diff --git a/ui/snippets/footer/Footer.tsx b/ui/snippets/footer/Footer.tsx index c23905c9e7..a29f4f8d2a 100644 --- a/ui/snippets/footer/Footer.tsx +++ b/ui/snippets/footer/Footer.tsx @@ -1,4 +1,4 @@ -import type { GridProps } from '@chakra-ui/react'; +import type { GridProps, HTMLChakraProps } from '@chakra-ui/react'; import { Box, Grid, Flex, Text, Link, VStack, Skeleton, useColorModeValue } from '@chakra-ui/react'; import { useQuery } from '@tanstack/react-query'; import React from 'react'; @@ -12,6 +12,7 @@ import useFetch from 'lib/hooks/useFetch'; import useIssueUrl from 'lib/hooks/useIssueUrl'; import { copy } from 'lib/html-entities'; import IconSvg from 'ui/shared/IconSvg'; +import { CONTENT_MAX_WIDTH } from 'ui/shared/layout/utils'; import NetworkAddToWallet from 'ui/shared/NetworkAddToWallet'; import FooterLinkItem from './FooterLinkItem'; @@ -154,89 +155,98 @@ const Footer = () => { ); }, [ apiVersionUrl, backendVersionData?.backend_version, frontendLink, logoColor ]); - const containerProps: GridProps = { + const containerProps: HTMLChakraProps<'div'> = { as: 'footer', + borderTopWidth: '1px', + borderTopColor: 'solid', + }; + + const contentProps: GridProps = { px: { base: 4, lg: config.UI.navigation.layout === 'horizontal' ? 6 : 12 }, py: { base: 4, lg: 8 }, - borderTop: '1px solid', - borderColor: 'divider', gridTemplateColumns: { base: '1fr', lg: 'minmax(auto, 470px) 1fr' }, columnGap: { lg: '32px', xl: '100px' }, + maxW: `${ CONTENT_MAX_WIDTH }px`, + m: '0 auto', }; if (config.UI.footer.links) { return ( - -
- { renderNetworkInfo() } - { renderProjectInfo() } -
- - - { - ([ - { title: 'Blockscout', links: BLOCKSCOUT_LINKS }, - ...(linksData || []), - ]) - .slice(0, colNum) - .map(linkGroup => ( - - { linkGroup.title } - - { linkGroup.links.map(link => ) } - - - )) - } + + +
+ { renderNetworkInfo() } + { renderProjectInfo() } +
+ + + { + ([ + { title: 'Blockscout', links: BLOCKSCOUT_LINKS }, + ...(linksData || []), + ]) + .slice(0, colNum) + .map(linkGroup => ( + + { linkGroup.title } + + { linkGroup.links.map(link => ) } + + + )) + } +
-
+ ); } return ( - + - - { renderNetworkInfo({ lg: 'network' }) } - { renderProjectInfo({ lg: 'info' }) } - - - { BLOCKSCOUT_LINKS.map(link => ) } + + { renderNetworkInfo({ lg: 'network' }) } + { renderProjectInfo({ lg: 'info' }) } + + + { BLOCKSCOUT_LINKS.map(link => ) } + - + ); }; diff --git a/ui/snippets/navigation/horizontal/NavigationDesktop.tsx b/ui/snippets/navigation/horizontal/NavigationDesktop.tsx index f504b2b22d..063db1ba0a 100644 --- a/ui/snippets/navigation/horizontal/NavigationDesktop.tsx +++ b/ui/snippets/navigation/horizontal/NavigationDesktop.tsx @@ -1,8 +1,9 @@ -import { chakra, Flex } from '@chakra-ui/react'; +import { Box, chakra, Flex } from '@chakra-ui/react'; import React from 'react'; import config from 'configs/app'; import useNavItems, { isGroupItem } from 'lib/hooks/useNavItems'; +import { CONTENT_MAX_WIDTH } from 'ui/shared/layout/utils'; import NetworkLogo from 'ui/snippets/networkMenu/NetworkLogo'; import ProfileMenuDesktop from 'ui/snippets/profileMenu/ProfileMenuDesktop'; import WalletMenuDesktop from 'ui/snippets/walletMenu/WalletMenuDesktop'; @@ -15,30 +16,32 @@ const NavigationDesktop = () => { const { mainNavItems } = useNavItems(); return ( - - - - - - { mainNavItems.map((item) => { - if (isGroupItem(item)) { - return ; - } else { - return ; - } - }) } - - - { config.features.account.isEnabled && } - { config.features.blockchainInteraction.isEnabled && } - + + + + + + + { mainNavItems.map((item) => { + if (isGroupItem(item)) { + return ; + } else { + return ; + } + }) } + + + { config.features.account.isEnabled && } + { config.features.blockchainInteraction.isEnabled && } + + ); }; diff --git a/ui/snippets/topBar/TopBar.tsx b/ui/snippets/topBar/TopBar.tsx index 88ec1e0ea0..80e261dbef 100644 --- a/ui/snippets/topBar/TopBar.tsx +++ b/ui/snippets/topBar/TopBar.tsx @@ -2,6 +2,7 @@ import { Flex, Divider, useColorModeValue, Box } from '@chakra-ui/react'; import React from 'react'; import config from 'configs/app'; +import { CONTENT_MAX_WIDTH } from 'ui/shared/layout/utils'; import DeFiDropdown from './DeFiDropdown'; import NetworkMenu from './NetworkMenu'; @@ -12,30 +13,33 @@ const TopBar = () => { const bgColor = useColorModeValue('gray.50', 'whiteAlpha.100'); return ( - - - - { config.features.deFiDropdown.isEnabled && ( - <> - - - - ) } - - { config.UI.navigation.layout === 'horizontal' && Boolean(config.UI.navigation.featuredNetworks) && ( - - - - - ) } + + + + + { config.features.deFiDropdown.isEnabled && ( + <> + + + + ) } + + { config.UI.navigation.layout === 'horizontal' && Boolean(config.UI.navigation.featuredNetworks) && ( + + + + + ) } + - + ); }; From 035323c5cd468d5229e5a1d3a769b5b241c00e2b Mon Sep 17 00:00:00 2001 From: tom Date: Mon, 26 Aug 2024 19:30:49 +0200 Subject: [PATCH 02/10] limit content width for vertical menu layout --- theme/global.ts | 2 +- ui/shared/layout/components/Container.tsx | 16 ++++++++++++++-- ui/shared/layout/components/MainArea.tsx | 5 ++++- ui/snippets/footer/Footer.tsx | 2 ++ 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/theme/global.ts b/theme/global.ts index e50b7eeaf6..acaec89fc5 100644 --- a/theme/global.ts +++ b/theme/global.ts @@ -7,7 +7,7 @@ import getDefaultTransitionProps from './utils/getDefaultTransitionProps'; const global = (props: StyleFunctionProps) => ({ body: { - bg: mode('white', 'black')(props), + bg: mode('gray.100', 'gray.700')(props), ...getDefaultTransitionProps(), '-webkit-tap-highlight-color': 'transparent', 'font-variant-ligatures': 'no-contextual', diff --git a/ui/shared/layout/components/Container.tsx b/ui/shared/layout/components/Container.tsx index bbd18975cd..84d7ae2365 100644 --- a/ui/shared/layout/components/Container.tsx +++ b/ui/shared/layout/components/Container.tsx @@ -1,14 +1,26 @@ -import { Box, chakra } from '@chakra-ui/react'; +import { Box, chakra, useColorModeValue } from '@chakra-ui/react'; import React from 'react'; +import config from 'configs/app'; + +import { CONTENT_MAX_WIDTH } from '../utils'; + interface Props { children: React.ReactNode; className?: string; } const Container = ({ children, className }: Props) => { + const bgColor = useColorModeValue('white', 'black'); + return ( - + { children } ); diff --git a/ui/shared/layout/components/MainArea.tsx b/ui/shared/layout/components/MainArea.tsx index 632939e5db..9834daa8b0 100644 --- a/ui/shared/layout/components/MainArea.tsx +++ b/ui/shared/layout/components/MainArea.tsx @@ -1,4 +1,4 @@ -import { Flex, chakra } from '@chakra-ui/react'; +import { Flex, chakra, useColorModeValue } from '@chakra-ui/react'; import React from 'react'; import config from 'configs/app'; @@ -14,6 +14,8 @@ const TOP_BAR_HEIGHT = 36; const HORIZONTAL_NAV_BAR_HEIGHT = config.UI.navigation.layout === 'horizontal' ? 49 : 0; const MainArea = ({ children, className }: Props) => { + const bgColor = useColorModeValue('white', 'black'); + return ( { lg: `calc(100vh - ${ TOP_BAR_HEIGHT + HORIZONTAL_NAV_BAR_HEIGHT }px)`, }} alignItems="stretch" + bgColor={ bgColor } > { children } diff --git a/ui/snippets/footer/Footer.tsx b/ui/snippets/footer/Footer.tsx index a29f4f8d2a..3415313cc5 100644 --- a/ui/snippets/footer/Footer.tsx +++ b/ui/snippets/footer/Footer.tsx @@ -34,6 +34,7 @@ const Footer = () => { const apiVersionUrl = getApiVersionUrl(backendVersionData?.backend_version); const issueUrl = useIssueUrl(backendVersionData?.backend_version); const logoColor = useColorModeValue('blue.600', 'white'); + const bgColor = useColorModeValue('white', 'black'); const BLOCKSCOUT_LINKS = [ { @@ -159,6 +160,7 @@ const Footer = () => { as: 'footer', borderTopWidth: '1px', borderTopColor: 'solid', + bgColor, }; const contentProps: GridProps = { From e5c455bab78039cd9c75f5216d7f7470e69e7c7e Mon Sep 17 00:00:00 2001 From: tom Date: Mon, 26 Aug 2024 19:42:31 +0200 Subject: [PATCH 03/10] limit amout of tabs in routed tabs skeleton --- ui/shared/Tabs/AdaptiveTabsList.tsx | 2 +- ui/shared/Tabs/TabsWithScroll.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/shared/Tabs/AdaptiveTabsList.tsx b/ui/shared/Tabs/AdaptiveTabsList.tsx index 5fb881cca3..fbaddf5119 100644 --- a/ui/shared/Tabs/AdaptiveTabsList.tsx +++ b/ui/shared/Tabs/AdaptiveTabsList.tsx @@ -80,7 +80,7 @@ const AdaptiveTabsList = (props: Props) => { props.tabListProps) } > - { tabsList.map((tab, index) => { + { tabsList.slice(0, props.isLoading ? 5 : Infinity).map((tab, index) => { if (!tab.id) { if (props.isLoading) { return null; diff --git a/ui/shared/Tabs/TabsWithScroll.tsx b/ui/shared/Tabs/TabsWithScroll.tsx index efbde5723d..0809edfa4d 100644 --- a/ui/shared/Tabs/TabsWithScroll.tsx +++ b/ui/shared/Tabs/TabsWithScroll.tsx @@ -99,7 +99,7 @@ const TabsWithScroll = ({ // - tabs list is changed when API data is loaded // is to do full re-render of the tabs list // so we use screenWidth + tabIds as a key for the TabsList component - key={ screenWidth + '_' + tabsList.map((tab) => tab.id).join(':') } + key={ isLoading + '_' + screenWidth + '_' + tabsList.map((tab) => tab.id).join(':') } tabs={ tabs } tabListProps={ tabListProps } rightSlot={ rightSlot } From 86cc697c0fba207f5e5941d93871652a18759e9b Mon Sep 17 00:00:00 2001 From: tom Date: Tue, 27 Aug 2024 11:37:38 +0200 Subject: [PATCH 04/10] fix width of error screen --- pages/_app.tsx | 6 ++++-- ui/shared/AppError/AppErrorBoundary.tsx | 11 ++++++++--- ui/shared/AppError/AppErrorGlobalContainer.tsx | 14 ++++++++++++++ 3 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 ui/shared/AppError/AppErrorGlobalContainer.tsx diff --git a/pages/_app.tsx b/pages/_app.tsx index 28520d76a3..475700fbf5 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -1,4 +1,4 @@ -import type { ChakraProps } from '@chakra-ui/react'; +import { type ChakraProps } from '@chakra-ui/react'; import { GrowthBookProvider } from '@growthbook/growthbook-react'; import * as Sentry from '@sentry/react'; import { QueryClientProvider } from '@tanstack/react-query'; @@ -19,6 +19,7 @@ import useLoadFeatures from 'lib/growthbook/useLoadFeatures'; import useNotifyOnNavigation from 'lib/hooks/useNotifyOnNavigation'; import { SocketProvider } from 'lib/socket/context'; import AppErrorBoundary from 'ui/shared/AppError/AppErrorBoundary'; +import AppErrorGlobalContainer from 'ui/shared/AppError/AppErrorGlobalContainer'; import GoogleAnalytics from 'ui/shared/GoogleAnalytics'; import Layout from 'ui/shared/layout/Layout'; import Web3ModalProvider from 'ui/shared/Web3ModalProvider'; @@ -38,7 +39,7 @@ const ERROR_SCREEN_STYLES: ChakraProps = { justifyContent: 'center', width: 'fit-content', maxW: '800px', - margin: '0 auto', + margin: { base: '0 auto', lg: '0 auto' }, p: { base: 4, lg: 0 }, }; @@ -60,6 +61,7 @@ function MyApp({ Component, pageProps }: AppPropsWithLayout) { diff --git a/ui/shared/AppError/AppErrorBoundary.tsx b/ui/shared/AppError/AppErrorBoundary.tsx index c20981516d..8129ac17c7 100644 --- a/ui/shared/AppError/AppErrorBoundary.tsx +++ b/ui/shared/AppError/AppErrorBoundary.tsx @@ -9,13 +9,18 @@ interface Props { className?: string; children: React.ReactNode; onError?: (error: Error) => void; + Container?: React.FC<{ children: React.ReactNode }>; } -const AppErrorBoundary = ({ className, children, onError }: Props) => { +const AppErrorBoundary = ({ className, children, onError, Container }: Props) => { const renderErrorScreen = React.useCallback((error?: Error) => { - return ; - }, [ className ]); + const content = ; + if (Container) { + return { content }; + } + return content; + }, [ className, Container ]); return ( diff --git a/ui/shared/AppError/AppErrorGlobalContainer.tsx b/ui/shared/AppError/AppErrorGlobalContainer.tsx new file mode 100644 index 0000000000..4345d8a162 --- /dev/null +++ b/ui/shared/AppError/AppErrorGlobalContainer.tsx @@ -0,0 +1,14 @@ +import { Box, useColorModeValue } from '@chakra-ui/react'; +import React from 'react'; + +interface Props { + children: React.ReactNode; +} + +const AppErrorGlobalContainer = ({ children }: Props) => { + const bgColor = useColorModeValue('white', 'black'); + + return { children }; +}; + +export default React.memo(AppErrorGlobalContainer); From 0059331196b1ba6a177a61e8cc94aca7d592e643 Mon Sep 17 00:00:00 2001 From: tom Date: Tue, 27 Aug 2024 11:37:53 +0200 Subject: [PATCH 05/10] add NEXT_PUBLIC_ROLLUP_L2_WITHDRAWAL_URL L2 review envs --- deploy/values/review-l2/values.yaml.gotmpl | 1 + 1 file changed, 1 insertion(+) diff --git a/deploy/values/review-l2/values.yaml.gotmpl b/deploy/values/review-l2/values.yaml.gotmpl index 2ad727a8e8..d03f0984eb 100644 --- a/deploy/values/review-l2/values.yaml.gotmpl +++ b/deploy/values/review-l2/values.yaml.gotmpl @@ -67,6 +67,7 @@ frontend: NEXT_PUBLIC_METADATA_SERVICE_API_HOST: https://metadata.services.blockscout.com NEXT_PUBLIC_ROLLUP_TYPE: optimistic NEXT_PUBLIC_ROLLUP_L1_BASE_URL: https://eth.blockscout.com + NEXT_PUBLIC_ROLLUP_L2_WITHDRAWAL_URL: https://app.optimism.io/bridge/withdraw NEXT_PUBLIC_GRAPHIQL_TRANSACTION: 0x4a0ed8ddf751a7cb5297f827699117b0f6d21a0b2907594d300dc9fed75c7e62 NEXT_PUBLIC_USE_NEXT_JS_PROXY: true NEXT_PUBLIC_NAVIGATION_LAYOUT: horizontal From 0dbfb343d73041f52b6d7be37d7144b2bddc2e3f Mon Sep 17 00:00:00 2001 From: tom Date: Tue, 27 Aug 2024 12:14:58 +0200 Subject: [PATCH 06/10] add tests --- ui/shared/layout/Layout.pw.tsx | 18 ++++++++++++++++++ ...ault_xl-screen-horizontal-navigation-1.png | Bin 0 -> 52281 bytes ...efault_xl-screen-vertical-navigation-1.png | Bin 0 -> 59736 bytes 3 files changed, 18 insertions(+) create mode 100644 ui/shared/layout/__screenshots__/Layout.pw.tsx_default_xl-screen-horizontal-navigation-1.png create mode 100644 ui/shared/layout/__screenshots__/Layout.pw.tsx_default_xl-screen-vertical-navigation-1.png diff --git a/ui/shared/layout/Layout.pw.tsx b/ui/shared/layout/Layout.pw.tsx index 77cbe1e63b..bc2cad67d5 100644 --- a/ui/shared/layout/Layout.pw.tsx +++ b/ui/shared/layout/Layout.pw.tsx @@ -2,6 +2,7 @@ import React from 'react'; import { indexingStatus } from 'mocks/stats/index'; import { test, expect } from 'playwright/lib'; +import * as pwConfig from 'playwright/utils/config'; import Layout from './Layout'; @@ -16,3 +17,20 @@ test('base view +@mobile', async({ render, mockEnvs, mockApiResponse }) => { const component = await render(Page Content); await expect(component).toHaveScreenshot(); }); + +test.describe('xl screen', () => { + test.use({ viewport: pwConfig.viewport.xl }); + + test('vertical navigation', async({ render }) => { + const component = await render(Page Content); + await expect(component).toHaveScreenshot(); + }); + + test('horizontal navigation', async({ render, mockEnvs }) => { + await mockEnvs([ + [ 'NEXT_PUBLIC_NAVIGATION_LAYOUT', 'horizontal' ], + ]); + const component = await render(Page Content); + await expect(component).toHaveScreenshot(); + }); +}); diff --git a/ui/shared/layout/__screenshots__/Layout.pw.tsx_default_xl-screen-horizontal-navigation-1.png b/ui/shared/layout/__screenshots__/Layout.pw.tsx_default_xl-screen-horizontal-navigation-1.png new file mode 100644 index 0000000000000000000000000000000000000000..5c45de933dbfeead4be7996f4f8cf43771cd6896 GIT binary patch literal 52281 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 literal 0 HcmV?d00001 diff --git a/ui/shared/layout/__screenshots__/Layout.pw.tsx_default_xl-screen-vertical-navigation-1.png b/ui/shared/layout/__screenshots__/Layout.pw.tsx_default_xl-screen-vertical-navigation-1.png new file mode 100644 index 0000000000000000000000000000000000000000..a637e006b63ecfd05a0aa6e6a7599f8da2c93bb9 GIT binary patch literal 59736 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 z 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

${_AHQr+Zc&k>*IJDh1(kTg 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 Date: Tue, 27 Aug 2024 15:39:10 +0200 Subject: [PATCH 07/10] fixes --- theme/global.ts | 2 +- ui/shared/layout/components/Container.tsx | 2 +- ui/shared/layout/components/MainArea.tsx | 5 +---- ui/snippets/footer/Footer.tsx | 2 -- 4 files changed, 3 insertions(+), 8 deletions(-) diff --git a/theme/global.ts b/theme/global.ts index acaec89fc5..c6fa5fbc6c 100644 --- a/theme/global.ts +++ b/theme/global.ts @@ -7,7 +7,7 @@ import getDefaultTransitionProps from './utils/getDefaultTransitionProps'; const global = (props: StyleFunctionProps) => ({ body: { - bg: mode('gray.100', 'gray.700')(props), + bg: mode('gray.100', '#3A4957')(props), ...getDefaultTransitionProps(), '-webkit-tap-highlight-color': 'transparent', 'font-variant-ligatures': 'no-contextual', diff --git a/ui/shared/layout/components/Container.tsx b/ui/shared/layout/components/Container.tsx index 84d7ae2365..78d6f0cf31 100644 --- a/ui/shared/layout/components/Container.tsx +++ b/ui/shared/layout/components/Container.tsx @@ -19,7 +19,7 @@ const Container = ({ children, className }: Props) => { minWidth={{ base: '100vw', lg: 'fit-content' }} maxW={ config.UI.navigation.layout === 'horizontal' ? undefined : `${ CONTENT_MAX_WIDTH }px` } m="0 auto" - bgColor={ config.UI.navigation.layout === 'horizontal' ? bgColor : undefined } + bgColor={ bgColor } > { children } diff --git a/ui/shared/layout/components/MainArea.tsx b/ui/shared/layout/components/MainArea.tsx index 9834daa8b0..632939e5db 100644 --- a/ui/shared/layout/components/MainArea.tsx +++ b/ui/shared/layout/components/MainArea.tsx @@ -1,4 +1,4 @@ -import { Flex, chakra, useColorModeValue } from '@chakra-ui/react'; +import { Flex, chakra } from '@chakra-ui/react'; import React from 'react'; import config from 'configs/app'; @@ -14,8 +14,6 @@ const TOP_BAR_HEIGHT = 36; const HORIZONTAL_NAV_BAR_HEIGHT = config.UI.navigation.layout === 'horizontal' ? 49 : 0; const MainArea = ({ children, className }: Props) => { - const bgColor = useColorModeValue('white', 'black'); - return ( { lg: `calc(100vh - ${ TOP_BAR_HEIGHT + HORIZONTAL_NAV_BAR_HEIGHT }px)`, }} alignItems="stretch" - bgColor={ bgColor } > { children } diff --git a/ui/snippets/footer/Footer.tsx b/ui/snippets/footer/Footer.tsx index 3415313cc5..a29f4f8d2a 100644 --- a/ui/snippets/footer/Footer.tsx +++ b/ui/snippets/footer/Footer.tsx @@ -34,7 +34,6 @@ const Footer = () => { const apiVersionUrl = getApiVersionUrl(backendVersionData?.backend_version); const issueUrl = useIssueUrl(backendVersionData?.backend_version); const logoColor = useColorModeValue('blue.600', 'white'); - const bgColor = useColorModeValue('white', 'black'); const BLOCKSCOUT_LINKS = [ { @@ -160,7 +159,6 @@ const Footer = () => { as: 'footer', borderTopWidth: '1px', borderTopColor: 'solid', - bgColor, }; const contentProps: GridProps = { From 357df5fec908d63f4ffa354497b02263e4ffbdbd Mon Sep 17 00:00:00 2001 From: tom Date: Tue, 27 Aug 2024 16:50:11 +0200 Subject: [PATCH 08/10] fix tests --- playwright/TestApp.tsx | 8 ++++++-- ui/snippets/footer/Footer.pw.tsx | 2 +- ui/snippets/footer/Footer.pwstory.tsx | 11 +++++++++++ ...stom-links-max-cols-mobile-dark-mode-1.png | Bin 48356 -> 48362 bytes ...-min-cols-base-view-dark-mode-mobile-1.png | Bin 35663 -> 35733 bytes ...tom-links-base-view-dark-mode-mobile-1.png | Bin 35155 -> 35160 bytes ...with-custom-links-max-cols-screen-xl-1.png | Bin 51668 -> 52281 bytes 7 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 ui/snippets/footer/Footer.pwstory.tsx diff --git a/playwright/TestApp.tsx b/playwright/TestApp.tsx index 540afac5ac..70233becf1 100644 --- a/playwright/TestApp.tsx +++ b/playwright/TestApp.tsx @@ -1,4 +1,4 @@ -import { ChakraProvider } from '@chakra-ui/react'; +import { Box, ChakraProvider, useColorModeValue } from '@chakra-ui/react'; import { GrowthBookProvider } from '@growthbook/growthbook-react'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import React from 'react'; @@ -59,6 +59,8 @@ const TestApp = ({ children, withSocket, appContext = defaultAppContext }: Props }, })); + const bgColor = useColorModeValue('white', 'black'); + return ( @@ -66,7 +68,9 @@ const TestApp = ({ children, withSocket, appContext = defaultAppContext }: Props - { children } + + { children } + diff --git a/ui/snippets/footer/Footer.pw.tsx b/ui/snippets/footer/Footer.pw.tsx index 82d7c8ede4..1c11f1fd3a 100644 --- a/ui/snippets/footer/Footer.pw.tsx +++ b/ui/snippets/footer/Footer.pw.tsx @@ -4,7 +4,7 @@ import { FOOTER_LINKS } from 'mocks/config/footerLinks'; import { test, expect } from 'playwright/lib'; import * as pwConfig from 'playwright/utils/config'; -import Footer from './Footer'; +import Footer from './Footer.pwstory'; const FOOTER_LINKS_URL = 'https://localhost:3000/footer-links.json'; diff --git a/ui/snippets/footer/Footer.pwstory.tsx b/ui/snippets/footer/Footer.pwstory.tsx new file mode 100644 index 0000000000..b6ff512c00 --- /dev/null +++ b/ui/snippets/footer/Footer.pwstory.tsx @@ -0,0 +1,11 @@ +import { Box, useColorModeValue } from '@chakra-ui/react'; +import React from 'react'; + +import Footer from './Footer'; + +const FooterPwStory = () => { + const bgColor = useColorModeValue('white', 'black'); + return