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 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/playwright/ContentWrapper.tsx b/playwright/ContentWrapper.tsx new file mode 100644 index 0000000000..c3c1769266 --- /dev/null +++ b/playwright/ContentWrapper.tsx @@ -0,0 +1,13 @@ +import { Box, useColorModeValue } from '@chakra-ui/react'; +import React from 'react'; + +interface Props { + children?: React.ReactNode; +} + +const ContentWrapper = ({ children }: Props) => { + const bgColor = useColorModeValue('white', 'black'); + return { children }; +}; + +export default React.memo(ContentWrapper); diff --git a/playwright/fixtures/render.tsx b/playwright/fixtures/render.tsx index 789f77ad63..e89f21cd9a 100644 --- a/playwright/fixtures/render.tsx +++ b/playwright/fixtures/render.tsx @@ -6,6 +6,7 @@ import React from 'react'; import type { JsonObject } from '@playwright/experimental-ct-core/types/component'; +import ContentWrapper from 'playwright/ContentWrapper'; import type { Props as TestAppProps } from 'playwright/TestApp'; import TestApp from 'playwright/TestApp'; @@ -27,7 +28,7 @@ export type RenderFixture = (component: JSX.Element, options?: Options, props?: const fixture: TestFixture = async({ mount }, use) => { await use((component, options, props) => { return mount( - { component }, + { component }, options, ); }); diff --git a/theme/components/Tooltip/__screenshots__/Tooltip.pw.tsx_dark-color-mode_base-view-dark-mode-1.png b/theme/components/Tooltip/__screenshots__/Tooltip.pw.tsx_dark-color-mode_base-view-dark-mode-1.png index c80b68fb63..c4cf92223e 100644 Binary files a/theme/components/Tooltip/__screenshots__/Tooltip.pw.tsx_dark-color-mode_base-view-dark-mode-1.png and b/theme/components/Tooltip/__screenshots__/Tooltip.pw.tsx_dark-color-mode_base-view-dark-mode-1.png differ diff --git a/theme/global.ts b/theme/global.ts index e50b7eeaf6..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('white', 'black')(props), + bg: mode('gray.100', '#3A4957')(props), ...getDefaultTransitionProps(), '-webkit-tap-highlight-color': 'transparent', 'font-variant-ligatures': 'no-contextual', diff --git a/ui/address/__screenshots__/SolidityscanReport.pw.tsx_dark-color-mode_average-report-dark-mode-mobile-1.png b/ui/address/__screenshots__/SolidityscanReport.pw.tsx_dark-color-mode_average-report-dark-mode-mobile-1.png index cb130891fb..7b6fa0a19c 100644 Binary files a/ui/address/__screenshots__/SolidityscanReport.pw.tsx_dark-color-mode_average-report-dark-mode-mobile-1.png and b/ui/address/__screenshots__/SolidityscanReport.pw.tsx_dark-color-mode_average-report-dark-mode-mobile-1.png differ diff --git a/ui/address/__screenshots__/SolidityscanReport.pw.tsx_dark-color-mode_average-report-dark-mode-mobile-2.png b/ui/address/__screenshots__/SolidityscanReport.pw.tsx_dark-color-mode_average-report-dark-mode-mobile-2.png index 35ddd924f3..117fabce32 100644 Binary files a/ui/address/__screenshots__/SolidityscanReport.pw.tsx_dark-color-mode_average-report-dark-mode-mobile-2.png and b/ui/address/__screenshots__/SolidityscanReport.pw.tsx_dark-color-mode_average-report-dark-mode-mobile-2.png differ diff --git a/ui/address/tokenSelect/__screenshots__/TokenSelect.pw.tsx_dark-color-mode_base-view-dark-mode-1.png b/ui/address/tokenSelect/__screenshots__/TokenSelect.pw.tsx_dark-color-mode_base-view-dark-mode-1.png index a754d976b0..71f79d74a9 100644 Binary files a/ui/address/tokenSelect/__screenshots__/TokenSelect.pw.tsx_dark-color-mode_base-view-dark-mode-1.png and b/ui/address/tokenSelect/__screenshots__/TokenSelect.pw.tsx_dark-color-mode_base-view-dark-mode-1.png differ diff --git a/ui/address/tokenSelect/__screenshots__/TokenSelect.pw.tsx_dark-color-mode_base-view-dark-mode-2.png b/ui/address/tokenSelect/__screenshots__/TokenSelect.pw.tsx_dark-color-mode_base-view-dark-mode-2.png index 3ae82484e9..86accc8f75 100644 Binary files a/ui/address/tokenSelect/__screenshots__/TokenSelect.pw.tsx_dark-color-mode_base-view-dark-mode-2.png and b/ui/address/tokenSelect/__screenshots__/TokenSelect.pw.tsx_dark-color-mode_base-view-dark-mode-2.png differ diff --git a/ui/gasTracker/__screenshots__/GasTrackerPriceSnippet.pw.tsx_dark-color-mode_with-gwei-as-primary-unit-dark-mode-1.png b/ui/gasTracker/__screenshots__/GasTrackerPriceSnippet.pw.tsx_dark-color-mode_with-gwei-as-primary-unit-dark-mode-1.png index 791fee07ea..b51769292c 100644 Binary files a/ui/gasTracker/__screenshots__/GasTrackerPriceSnippet.pw.tsx_dark-color-mode_with-gwei-as-primary-unit-dark-mode-1.png and b/ui/gasTracker/__screenshots__/GasTrackerPriceSnippet.pw.tsx_dark-color-mode_with-gwei-as-primary-unit-dark-mode-1.png differ diff --git a/ui/gasTracker/__screenshots__/GasTrackerPriceSnippet.pw.tsx_dark-color-mode_with-usd-as-primary-unit-dark-mode-1.png b/ui/gasTracker/__screenshots__/GasTrackerPriceSnippet.pw.tsx_dark-color-mode_with-usd-as-primary-unit-dark-mode-1.png index 1a7b39a125..5718405868 100644 Binary files a/ui/gasTracker/__screenshots__/GasTrackerPriceSnippet.pw.tsx_dark-color-mode_with-usd-as-primary-unit-dark-mode-1.png and b/ui/gasTracker/__screenshots__/GasTrackerPriceSnippet.pw.tsx_dark-color-mode_with-usd-as-primary-unit-dark-mode-1.png differ diff --git a/ui/marketplace/__screenshots__/MarketplaceAppInfo.pw.tsx_dark-color-mode_base-view-dark-mode-1.png b/ui/marketplace/__screenshots__/MarketplaceAppInfo.pw.tsx_dark-color-mode_base-view-dark-mode-1.png index 78db057d84..ecaa1c41c1 100644 Binary files a/ui/marketplace/__screenshots__/MarketplaceAppInfo.pw.tsx_dark-color-mode_base-view-dark-mode-1.png and b/ui/marketplace/__screenshots__/MarketplaceAppInfo.pw.tsx_dark-color-mode_base-view-dark-mode-1.png differ diff --git a/ui/pages/NameDomain.pw.tsx b/ui/pages/NameDomain.pw.tsx index a693cbb886..31f46ece55 100644 --- a/ui/pages/NameDomain.pw.tsx +++ b/ui/pages/NameDomain.pw.tsx @@ -7,11 +7,13 @@ import { test, expect } from 'playwright/lib'; import NameDomain from './NameDomain'; -test('details tab', async({ render, mockTextAd, mockApiResponse }) => { +test('details tab', async({ render, mockTextAd, mockApiResponse, mockAssetResponse }) => { await mockTextAd(); await mockApiResponse('domain_info', ensDomainMock.ensDomainA, { pathParams: { chainId: config.chain.id, name: ensDomainMock.ensDomainA.name }, }); + await mockAssetResponse(ensDomainMock.ensDomainA.protocol?.icon_url as string, './playwright/mocks/image_s.jpg'); + const component = await render( , { hooksConfig: { @@ -24,7 +26,7 @@ test('details tab', async({ render, mockTextAd, mockApiResponse }) => { await expect(component).toHaveScreenshot(); }); -test('history tab +@mobile', async({ render, mockTextAd, mockApiResponse }) => { +test('history tab +@mobile', async({ render, mockTextAd, mockApiResponse, mockAssetResponse }) => { await mockTextAd(); await mockApiResponse('domain_info', ensDomainMock.ensDomainA, { pathParams: { chainId: config.chain.id, name: ensDomainMock.ensDomainA.name }, @@ -37,6 +39,7 @@ test('history tab +@mobile', async({ render, mockTextAd, mockApiResponse }) => { }, { pathParams: { chainId: config.chain.id, name: ensDomainMock.ensDomainA.name }, }); + await mockAssetResponse(ensDomainMock.ensDomainA.protocol?.icon_url as string, './playwright/mocks/image_s.jpg'); const component = await render( , { hooksConfig: { diff --git a/ui/pages/__screenshots__/NameDomain.pw.tsx_default_details-tab-1.png b/ui/pages/__screenshots__/NameDomain.pw.tsx_default_details-tab-1.png index f31db8b0a7..8a6d886a8a 100644 Binary files a/ui/pages/__screenshots__/NameDomain.pw.tsx_default_details-tab-1.png and b/ui/pages/__screenshots__/NameDomain.pw.tsx_default_details-tab-1.png differ diff --git a/ui/pages/__screenshots__/NameDomain.pw.tsx_default_history-tab-mobile-1.png b/ui/pages/__screenshots__/NameDomain.pw.tsx_default_history-tab-mobile-1.png index 379217ef69..112afa95ae 100644 Binary files a/ui/pages/__screenshots__/NameDomain.pw.tsx_default_history-tab-mobile-1.png and b/ui/pages/__screenshots__/NameDomain.pw.tsx_default_history-tab-mobile-1.png differ diff --git a/ui/pages/__screenshots__/NameDomain.pw.tsx_mobile_history-tab-mobile-1.png b/ui/pages/__screenshots__/NameDomain.pw.tsx_mobile_history-tab-mobile-1.png index 02116c0514..2bfc09e162 100644 Binary files a/ui/pages/__screenshots__/NameDomain.pw.tsx_mobile_history-tab-mobile-1.png and b/ui/pages/__screenshots__/NameDomain.pw.tsx_mobile_history-tab-mobile-1.png differ 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); diff --git a/ui/shared/EntityTags/__screenshots__/EntityTag.pw.tsx_dark-color-mode_tag-with-tooltip-dark-mode-1.png b/ui/shared/EntityTags/__screenshots__/EntityTag.pw.tsx_dark-color-mode_tag-with-tooltip-dark-mode-1.png index 60abf294c3..23b562efa1 100644 Binary files a/ui/shared/EntityTags/__screenshots__/EntityTag.pw.tsx_dark-color-mode_tag-with-tooltip-dark-mode-1.png and b/ui/shared/EntityTags/__screenshots__/EntityTag.pw.tsx_dark-color-mode_tag-with-tooltip-dark-mode-1.png differ diff --git a/ui/shared/FancySelect/__screenshots__/FancySelect.pw.tsx_dark-color-mode_size-lg-dark-mode-empty-2.png b/ui/shared/FancySelect/__screenshots__/FancySelect.pw.tsx_dark-color-mode_size-lg-dark-mode-empty-2.png index b0af0b7c9d..913bb8eb1c 100644 Binary files a/ui/shared/FancySelect/__screenshots__/FancySelect.pw.tsx_dark-color-mode_size-lg-dark-mode-empty-2.png and b/ui/shared/FancySelect/__screenshots__/FancySelect.pw.tsx_dark-color-mode_size-lg-dark-mode-empty-2.png differ diff --git a/ui/shared/FancySelect/__screenshots__/FancySelect.pw.tsx_dark-color-mode_size-md-dark-mode-empty-2.png b/ui/shared/FancySelect/__screenshots__/FancySelect.pw.tsx_dark-color-mode_size-md-dark-mode-empty-2.png index bcacccb625..1b86a8de8e 100644 Binary files a/ui/shared/FancySelect/__screenshots__/FancySelect.pw.tsx_dark-color-mode_size-md-dark-mode-empty-2.png and b/ui/shared/FancySelect/__screenshots__/FancySelect.pw.tsx_dark-color-mode_size-md-dark-mode-empty-2.png differ 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 } diff --git a/ui/shared/entities/address/AddressEntity.tsx b/ui/shared/entities/address/AddressEntity.tsx index 704285e0ff..cfa4b50e07 100644 --- a/ui/shared/entities/address/AddressEntity.tsx +++ b/ui/shared/entities/address/AddressEntity.tsx @@ -160,6 +160,7 @@ const AddressEntry = (props: EntityProps) => { onMouseEnter={ context?.onMouseEnter } onMouseLeave={ context?.onMouseLeave } position="relative" + zIndex={ 0 } > 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 0000000000..5c45de933d Binary files /dev/null and b/ui/shared/layout/__screenshots__/Layout.pw.tsx_default_xl-screen-horizontal-navigation-1.png differ 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 0000000000..a637e006b6 Binary files /dev/null and b/ui/shared/layout/__screenshots__/Layout.pw.tsx_default_xl-screen-vertical-navigation-1.png differ diff --git a/ui/shared/layout/components/Container.tsx b/ui/shared/layout/components/Container.tsx index bbd18975cd..78d6f0cf31 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 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/footer/__screenshots__/Footer.pw.tsx_dark-color-mode_with-custom-links-max-cols-mobile-dark-mode-1.png b/ui/snippets/footer/__screenshots__/Footer.pw.tsx_dark-color-mode_with-custom-links-max-cols-mobile-dark-mode-1.png index 86dfb652d1..b82cc3b1ae 100644 Binary files a/ui/snippets/footer/__screenshots__/Footer.pw.tsx_dark-color-mode_with-custom-links-max-cols-mobile-dark-mode-1.png and b/ui/snippets/footer/__screenshots__/Footer.pw.tsx_dark-color-mode_with-custom-links-max-cols-mobile-dark-mode-1.png differ diff --git a/ui/snippets/footer/__screenshots__/Footer.pw.tsx_dark-color-mode_with-custom-links-min-cols-base-view-dark-mode-mobile-1.png b/ui/snippets/footer/__screenshots__/Footer.pw.tsx_dark-color-mode_with-custom-links-min-cols-base-view-dark-mode-mobile-1.png index ad5662e878..71c12cc4fc 100644 Binary files a/ui/snippets/footer/__screenshots__/Footer.pw.tsx_dark-color-mode_with-custom-links-min-cols-base-view-dark-mode-mobile-1.png and b/ui/snippets/footer/__screenshots__/Footer.pw.tsx_dark-color-mode_with-custom-links-min-cols-base-view-dark-mode-mobile-1.png differ diff --git a/ui/snippets/footer/__screenshots__/Footer.pw.tsx_dark-color-mode_without-custom-links-base-view-dark-mode-mobile-1.png b/ui/snippets/footer/__screenshots__/Footer.pw.tsx_dark-color-mode_without-custom-links-base-view-dark-mode-mobile-1.png index f5a3620844..ba385f1c84 100644 Binary files a/ui/snippets/footer/__screenshots__/Footer.pw.tsx_dark-color-mode_without-custom-links-base-view-dark-mode-mobile-1.png and b/ui/snippets/footer/__screenshots__/Footer.pw.tsx_dark-color-mode_without-custom-links-base-view-dark-mode-mobile-1.png differ diff --git a/ui/snippets/footer/__screenshots__/Footer.pw.tsx_default_with-custom-links-max-cols-screen-xl-1.png b/ui/snippets/footer/__screenshots__/Footer.pw.tsx_default_with-custom-links-max-cols-screen-xl-1.png index c2771eaca9..bb01d54087 100644 Binary files a/ui/snippets/footer/__screenshots__/Footer.pw.tsx_default_with-custom-links-max-cols-screen-xl-1.png and b/ui/snippets/footer/__screenshots__/Footer.pw.tsx_default_with-custom-links-max-cols-screen-xl-1.png differ diff --git a/ui/snippets/header/__screenshots__/HeaderMobile.pw.tsx_dark-color-mode_default-view-dark-mode-1.png b/ui/snippets/header/__screenshots__/HeaderMobile.pw.tsx_dark-color-mode_default-view-dark-mode-1.png index d6cd8469a7..244098dd3b 100644 Binary files a/ui/snippets/header/__screenshots__/HeaderMobile.pw.tsx_dark-color-mode_default-view-dark-mode-1.png and b/ui/snippets/header/__screenshots__/HeaderMobile.pw.tsx_dark-color-mode_default-view-dark-mode-1.png differ 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/navigation/horizontal/__screenshots__/NavigationDesktop.pw.tsx_dark-color-mode_base-view-dark-mode-1.png b/ui/snippets/navigation/horizontal/__screenshots__/NavigationDesktop.pw.tsx_dark-color-mode_base-view-dark-mode-1.png index dcdc0bf595..16aad3fa23 100644 Binary files a/ui/snippets/navigation/horizontal/__screenshots__/NavigationDesktop.pw.tsx_dark-color-mode_base-view-dark-mode-1.png and b/ui/snippets/navigation/horizontal/__screenshots__/NavigationDesktop.pw.tsx_dark-color-mode_base-view-dark-mode-1.png differ diff --git a/ui/snippets/networkMenu/__screenshots__/NetworkMenu.pw.tsx_dark-color-mode_base-view-dark-mode-3.png b/ui/snippets/networkMenu/__screenshots__/NetworkMenu.pw.tsx_dark-color-mode_base-view-dark-mode-3.png index 51117c86fb..dfb329c593 100644 Binary files a/ui/snippets/networkMenu/__screenshots__/NetworkMenu.pw.tsx_dark-color-mode_base-view-dark-mode-3.png and b/ui/snippets/networkMenu/__screenshots__/NetworkMenu.pw.tsx_dark-color-mode_base-view-dark-mode-3.png differ diff --git a/ui/snippets/networkMenu/__screenshots__/NetworkMenu.pw.tsx_dark-color-mode_base-view-dark-mode-4.png b/ui/snippets/networkMenu/__screenshots__/NetworkMenu.pw.tsx_dark-color-mode_base-view-dark-mode-4.png index 1afae83b0a..fa9e923045 100644 Binary files a/ui/snippets/networkMenu/__screenshots__/NetworkMenu.pw.tsx_dark-color-mode_base-view-dark-mode-4.png and b/ui/snippets/networkMenu/__screenshots__/NetworkMenu.pw.tsx_dark-color-mode_base-view-dark-mode-4.png differ diff --git a/ui/snippets/profileMenu/__screenshots__/ProfileMenuDesktop.pw.tsx_dark-color-mode_auth-dark-mode-1.png b/ui/snippets/profileMenu/__screenshots__/ProfileMenuDesktop.pw.tsx_dark-color-mode_auth-dark-mode-1.png index 5e247adba1..b65fd6d4e8 100644 Binary files a/ui/snippets/profileMenu/__screenshots__/ProfileMenuDesktop.pw.tsx_dark-color-mode_auth-dark-mode-1.png and b/ui/snippets/profileMenu/__screenshots__/ProfileMenuDesktop.pw.tsx_dark-color-mode_auth-dark-mode-1.png differ 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) && ( + + + + + ) } + - + ); }; diff --git a/ui/snippets/topBar/__screenshots__/TopBar.pw.tsx_dark-color-mode_default-view-dark-mode-mobile-1.png b/ui/snippets/topBar/__screenshots__/TopBar.pw.tsx_dark-color-mode_default-view-dark-mode-mobile-1.png index 16498cc879..0662b18baa 100644 Binary files a/ui/snippets/topBar/__screenshots__/TopBar.pw.tsx_dark-color-mode_default-view-dark-mode-mobile-1.png and b/ui/snippets/topBar/__screenshots__/TopBar.pw.tsx_dark-color-mode_default-view-dark-mode-mobile-1.png differ diff --git a/ui/snippets/topBar/__screenshots__/TopBar.pw.tsx_dark-color-mode_default-view-dark-mode-mobile-2.png b/ui/snippets/topBar/__screenshots__/TopBar.pw.tsx_dark-color-mode_default-view-dark-mode-mobile-2.png index 45b34d445e..9c44c058c4 100644 Binary files a/ui/snippets/topBar/__screenshots__/TopBar.pw.tsx_dark-color-mode_default-view-dark-mode-mobile-2.png and b/ui/snippets/topBar/__screenshots__/TopBar.pw.tsx_dark-color-mode_default-view-dark-mode-mobile-2.png differ diff --git a/ui/snippets/topBar/__screenshots__/TopBar.pw.tsx_dark-color-mode_with-DeFi-dropdown-dark-mode-mobile-1.png b/ui/snippets/topBar/__screenshots__/TopBar.pw.tsx_dark-color-mode_with-DeFi-dropdown-dark-mode-mobile-1.png index 91c5da3027..91e3c53c3e 100644 Binary files a/ui/snippets/topBar/__screenshots__/TopBar.pw.tsx_dark-color-mode_with-DeFi-dropdown-dark-mode-mobile-1.png and b/ui/snippets/topBar/__screenshots__/TopBar.pw.tsx_dark-color-mode_with-DeFi-dropdown-dark-mode-mobile-1.png differ diff --git a/ui/snippets/walletMenu/__screenshots__/WalletMenuDesktop.pw.tsx_dark-color-mode_wallet-connected-dark-mode-1.png b/ui/snippets/walletMenu/__screenshots__/WalletMenuDesktop.pw.tsx_dark-color-mode_wallet-connected-dark-mode-1.png index 405eee4950..55b56b1734 100644 Binary files a/ui/snippets/walletMenu/__screenshots__/WalletMenuDesktop.pw.tsx_dark-color-mode_wallet-connected-dark-mode-1.png and b/ui/snippets/walletMenu/__screenshots__/WalletMenuDesktop.pw.tsx_dark-color-mode_wallet-connected-dark-mode-1.png differ diff --git a/ui/snippets/walletMenu/__screenshots__/WalletMenuDesktop.pw.tsx_dark-color-mode_wallet-connected-home-page-dark-mode-1.png b/ui/snippets/walletMenu/__screenshots__/WalletMenuDesktop.pw.tsx_dark-color-mode_wallet-connected-home-page-dark-mode-1.png index 57d31f2169..67461ee482 100644 Binary files a/ui/snippets/walletMenu/__screenshots__/WalletMenuDesktop.pw.tsx_dark-color-mode_wallet-connected-home-page-dark-mode-1.png and b/ui/snippets/walletMenu/__screenshots__/WalletMenuDesktop.pw.tsx_dark-color-mode_wallet-connected-home-page-dark-mode-1.png differ diff --git a/ui/snippets/walletMenu/__screenshots__/WalletMenuDesktop.pw.tsx_dark-color-mode_wallet-is-not-connected-dark-mode-1.png b/ui/snippets/walletMenu/__screenshots__/WalletMenuDesktop.pw.tsx_dark-color-mode_wallet-is-not-connected-dark-mode-1.png index b10ddfbe29..20e3177ded 100644 Binary files a/ui/snippets/walletMenu/__screenshots__/WalletMenuDesktop.pw.tsx_dark-color-mode_wallet-is-not-connected-dark-mode-1.png and b/ui/snippets/walletMenu/__screenshots__/WalletMenuDesktop.pw.tsx_dark-color-mode_wallet-is-not-connected-dark-mode-1.png differ diff --git a/ui/snippets/walletMenu/__screenshots__/WalletMenuDesktop.pw.tsx_dark-color-mode_wallet-is-not-connected-home-page-dark-mode-1.png b/ui/snippets/walletMenu/__screenshots__/WalletMenuDesktop.pw.tsx_dark-color-mode_wallet-is-not-connected-home-page-dark-mode-1.png index cbeefa84af..35fd0ae618 100644 Binary files a/ui/snippets/walletMenu/__screenshots__/WalletMenuDesktop.pw.tsx_dark-color-mode_wallet-is-not-connected-home-page-dark-mode-1.png and b/ui/snippets/walletMenu/__screenshots__/WalletMenuDesktop.pw.tsx_dark-color-mode_wallet-is-not-connected-home-page-dark-mode-1.png differ diff --git a/ui/snippets/walletMenu/__screenshots__/WalletMenuMobile.pw.tsx_dark-color-mode_wallet-is-not-connected-dark-mode-1.png b/ui/snippets/walletMenu/__screenshots__/WalletMenuMobile.pw.tsx_dark-color-mode_wallet-is-not-connected-dark-mode-1.png index 3e44a5260e..b6109084ac 100644 Binary files a/ui/snippets/walletMenu/__screenshots__/WalletMenuMobile.pw.tsx_dark-color-mode_wallet-is-not-connected-dark-mode-1.png and b/ui/snippets/walletMenu/__screenshots__/WalletMenuMobile.pw.tsx_dark-color-mode_wallet-is-not-connected-dark-mode-1.png differ diff --git a/ui/txs/__screenshots__/TxAdditionalInfo.pw.tsx_dark-color-mode_regular-transaction-dark-mode-1.png b/ui/txs/__screenshots__/TxAdditionalInfo.pw.tsx_dark-color-mode_regular-transaction-dark-mode-1.png index ad5c2eb44a..62030cc6a6 100644 Binary files a/ui/txs/__screenshots__/TxAdditionalInfo.pw.tsx_dark-color-mode_regular-transaction-dark-mode-1.png and b/ui/txs/__screenshots__/TxAdditionalInfo.pw.tsx_dark-color-mode_regular-transaction-dark-mode-1.png differ