From ba0c3ffd982f02e1c6bc122c8622dec6a425b217 Mon Sep 17 00:00:00 2001 From: Masha Date: Mon, 3 Aug 2026 22:58:42 +0200 Subject: [PATCH 1/6] fix(fox): polish ecosystem icons and header layout --- src/components/Layout/Header/Header.tsx | 5 ++--- src/pages/Fox/components/FoxFarming.tsx | 7 ++++--- src/pages/Fox/components/FoxGovernance.tsx | 8 ++++---- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/components/Layout/Header/Header.tsx b/src/components/Layout/Header/Header.tsx index eca9a356be2..c459b4de267 100644 --- a/src/components/Layout/Header/Header.tsx +++ b/src/components/Layout/Header/Header.tsx @@ -86,13 +86,12 @@ export const Header = memo(() => { const searchBoxDisplay = { base: 'none', - '2xl': 'flex', - xl: 'none', + '3xl': 'flex', } const iconButtonDisplay = { base: 'flex', - '2xl': 'none', + '3xl': 'none', } useEffect(() => { diff --git a/src/pages/Fox/components/FoxFarming.tsx b/src/pages/Fox/components/FoxFarming.tsx index 85e70e7ff24..63f7ba9c9a8 100644 --- a/src/pages/Fox/components/FoxFarming.tsx +++ b/src/pages/Fox/components/FoxFarming.tsx @@ -7,6 +7,7 @@ import { Divider, Flex, Heading, + Icon, SimpleGrid, Skeleton, Stack, @@ -20,6 +21,7 @@ import { useQuery, useQueryClient } from '@tanstack/react-query' import dayjs from 'dayjs' import qs from 'qs' import { useCallback, useEffect, useMemo } from 'react' +import { TbPlant2 } from 'react-icons/tb' import { useTranslate } from 'react-polyglot' import { useLocation, useNavigate } from 'react-router-dom' @@ -70,6 +72,7 @@ const columnsProps = { base: 1, md: 2, } +const farmingIcon = export const FoxFarming = () => { const { assetAccountId } = useFoxPageContext() @@ -302,9 +305,7 @@ export const FoxFarming = () => { - - 🧑‍🌾 - + {farmingIcon} {translate('foxPage.foxFarming.title')} diff --git a/src/pages/Fox/components/FoxGovernance.tsx b/src/pages/Fox/components/FoxGovernance.tsx index a30fc3c8824..0410df88bc2 100644 --- a/src/pages/Fox/components/FoxGovernance.tsx +++ b/src/pages/Fox/components/FoxGovernance.tsx @@ -6,6 +6,7 @@ import { Divider, Flex, Heading, + Icon, Link, Skeleton, Tab, @@ -13,10 +14,10 @@ import { TabPanel, TabPanels, Tabs, - Text as CText, } from '@chakra-ui/react' import { foxAssetId } from '@shapeshiftoss/caip' import { useCallback, useEffect, useMemo } from 'react' +import { TbBuildingBank } from 'react-icons/tb' import { useTranslate } from 'react-polyglot' import { FoxGovernanceProposal } from './FoxGovernanceProposal' @@ -52,6 +53,7 @@ const flexPropsMdAuto = { base: 1, md: 'auto' } const widthBaseFull = { base: 'full' } const widthMdAuto = { base: 'full', md: 'auto' } const tabListPaddingLeft = { base: 6, md: 0 } +const governanceIcon = export const FoxGovernance = () => { const isConnected = useIsWalletConnected() @@ -119,9 +121,7 @@ export const FoxGovernance = () => { - - 🏛️ - + {governanceIcon} {translate('foxPage.governance.title')} From ba88733eeb8fddb7d593881f3db7eafa84259441 Mon Sep 17 00:00:00 2001 From: Masha Date: Mon, 3 Aug 2026 23:36:27 +0200 Subject: [PATCH 2/6] fix(fox): address review feedback --- src/components/Layout/Header/Header.tsx | 12 ++---------- src/pages/Fox/components/FoxFarming.tsx | 4 ++-- src/pages/Fox/components/FoxGovernance.tsx | 4 ++-- 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/src/components/Layout/Header/Header.tsx b/src/components/Layout/Header/Header.tsx index c459b4de267..c8244d42bd9 100644 --- a/src/components/Layout/Header/Header.tsx +++ b/src/components/Layout/Header/Header.tsx @@ -55,6 +55,8 @@ const rightHStackSpacingSx = { base: 2, lg: 4 } // Search box responsive styles const searchBoxMaxWSx = { base: 'auto', lg: '400px' } const searchBoxMinWSx = { base: 'auto', xl: '300px' } +const searchBoxDisplay = { base: 'none', '3xl': 'flex' } +const iconButtonDisplay = { base: 'flex', '3xl': 'none' } const baseTradeSubMenuItems = [ { label: 'navBar.swap', path: '/trade', icon: TbRefresh }, @@ -84,16 +86,6 @@ export const Header = memo(() => { const height = useMemo(() => ref.current?.getBoundingClientRect()?.height ?? 0, []) const { scrollY } = useScroll() - const searchBoxDisplay = { - base: 'none', - '3xl': 'flex', - } - - const iconButtonDisplay = { - base: 'flex', - '3xl': 'none', - } - useEffect(() => { return scrollY.on('change', () => setY(scrollY.get())) }, [scrollY]) diff --git a/src/pages/Fox/components/FoxFarming.tsx b/src/pages/Fox/components/FoxFarming.tsx index 63f7ba9c9a8..9d6a242af9c 100644 --- a/src/pages/Fox/components/FoxFarming.tsx +++ b/src/pages/Fox/components/FoxFarming.tsx @@ -72,7 +72,7 @@ const columnsProps = { base: 1, md: 2, } -const farmingIcon = +const FARMING_ICON = export const FoxFarming = () => { const { assetAccountId } = useFoxPageContext() @@ -305,7 +305,7 @@ export const FoxFarming = () => { - {farmingIcon} + {FARMING_ICON} {translate('foxPage.foxFarming.title')} diff --git a/src/pages/Fox/components/FoxGovernance.tsx b/src/pages/Fox/components/FoxGovernance.tsx index 0410df88bc2..81a45c898e3 100644 --- a/src/pages/Fox/components/FoxGovernance.tsx +++ b/src/pages/Fox/components/FoxGovernance.tsx @@ -53,7 +53,7 @@ const flexPropsMdAuto = { base: 1, md: 'auto' } const widthBaseFull = { base: 'full' } const widthMdAuto = { base: 'full', md: 'auto' } const tabListPaddingLeft = { base: 6, md: 0 } -const governanceIcon = +const GOVERNANCE_ICON = export const FoxGovernance = () => { const isConnected = useIsWalletConnected() @@ -121,7 +121,7 @@ export const FoxGovernance = () => { - {governanceIcon} + {GOVERNANCE_ICON} {translate('foxPage.governance.title')} From f34b41386f0d6d59de5758dc33188c2d7512a984 Mon Sep 17 00:00:00 2001 From: kaladinlight <35275952+kaladinlight@users.noreply.github.com> Date: Wed, 5 Aug 2026 10:48:09 -0600 Subject: [PATCH 3/6] fix(fox): camelCase icon constants, optically center governance icon TbBuildingBank's glyph sits low in its viewBox (y=6-21 of 24), so the box-centered icon rendered ~2px below the heading text center; nudge it up to compensate. TbPlant2 is already centered and needs no offset. Co-Authored-By: Claude Fable 5 --- src/pages/Fox/components/FoxFarming.tsx | 4 ++-- src/pages/Fox/components/FoxGovernance.tsx | 13 +++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/pages/Fox/components/FoxFarming.tsx b/src/pages/Fox/components/FoxFarming.tsx index 9d6a242af9c..63f7ba9c9a8 100644 --- a/src/pages/Fox/components/FoxFarming.tsx +++ b/src/pages/Fox/components/FoxFarming.tsx @@ -72,7 +72,7 @@ const columnsProps = { base: 1, md: 2, } -const FARMING_ICON = +const farmingIcon = export const FoxFarming = () => { const { assetAccountId } = useFoxPageContext() @@ -305,7 +305,7 @@ export const FoxFarming = () => { - {FARMING_ICON} + {farmingIcon} {translate('foxPage.foxFarming.title')} diff --git a/src/pages/Fox/components/FoxGovernance.tsx b/src/pages/Fox/components/FoxGovernance.tsx index 81a45c898e3..fdfa4ad2610 100644 --- a/src/pages/Fox/components/FoxGovernance.tsx +++ b/src/pages/Fox/components/FoxGovernance.tsx @@ -53,7 +53,16 @@ const flexPropsMdAuto = { base: 1, md: 'auto' } const widthBaseFull = { base: 'full' } const widthMdAuto = { base: 'full', md: 'auto' } const tabListPaddingLeft = { base: 6, md: 0 } -const GOVERNANCE_ICON = +const governanceIcon = ( + +) export const FoxGovernance = () => { const isConnected = useIsWalletConnected() @@ -121,7 +130,7 @@ export const FoxGovernance = () => { - {GOVERNANCE_ICON} + {governanceIcon} {translate('foxPage.governance.title')} From 2707e3bee2ed70f0f4f1a82103067061037c7b3f Mon Sep 17 00:00:00 2001 From: kaladinlight <35275952+kaladinlight@users.noreply.github.com> Date: Wed, 5 Aug 2026 10:48:43 -0600 Subject: [PATCH 4/6] fix: show full search bar from 1540px, static width Hiding the bar until 3xl (2200px) removed it for all 1080p displays. The bar genuinely fits once each flex=1 side section clears its content width (~1540px); no theme breakpoint sits near that point, so gate the full/icon variants on a raw media query and give the bar a static 300px width instead of min/max clamps whose responsive keys were inert. Also remove the unreachable sub-lg fallback inside GlobalSearchButton: the full-bar variant has never rendered below 1440px, so its internal below-992px icon switch was dead code. Co-Authored-By: Claude Fable 5 --- .../Header/GlobalSearch/GlobalSearchButton.tsx | 14 ++------------ src/components/Layout/Header/Header.tsx | 11 +++++------ 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/src/components/Layout/Header/GlobalSearch/GlobalSearchButton.tsx b/src/components/Layout/Header/GlobalSearch/GlobalSearchButton.tsx index 37e905c944e..43f71d49330 100644 --- a/src/components/Layout/Header/GlobalSearch/GlobalSearchButton.tsx +++ b/src/components/Layout/Header/GlobalSearch/GlobalSearchButton.tsx @@ -11,9 +11,6 @@ interface GlobalSearchButtonProps { isIconButton?: boolean } -const widthProp = { base: 'auto', lg: 'full' } -const displayProp1 = { base: 'flex', lg: 'none' } -const displayProp2 = { base: 'none', lg: 'flex' } const sxProp1 = { svg: { width: '18px', height: '18px' } } const searchIcon = @@ -50,14 +47,7 @@ export const GlobalSearchButton = memo(({ isIconButton = false }: GlobalSearchBu data-testid='global-search-button' /> ) : ( - - +