You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A component-disposition audit identified "use client" components with exactly one consumer (with a couple of borderline cases noted). They should live next to that consumer in a _components/ directory, not in the shared src/components/ namespace.
Single PR. Each move = git mv + import path updates + verify build.
src/components/ConnectToEthereumButton/ -> co-locate inside src/components/StartWithEthereumFlow/ConnectYourWallet/ (or with StartWithEthereumFlow's new home once that relocates)
Technically server (no "use client"); sits inside the StartWithEthereumFlow feature
Coordination: this and StartWithEthereumFlow should land together to avoid a stale import path
Has an existing story file; relocating moves the story with it
Reviewer may choose to keep it in shared src/components/ for designer discoverability
Verification before merge
pnpm lint passes
npx tsc --noEmit passes
pnpm build passes
No git grep "from \"@/components/<MovedName>" hits remaining
All internal sub-imports inside Layer2NetworksTable/ and StartWithEthereumFlow/ resolve correctly after the move
Storybook still builds (relevant for FindWalletProductTable/ if it moves)
Out of scope
src/components/ListingMethodology/ -- brand new and designed for reuse on other pages; only one consumer today but the design intent is shared. Stays in src/components/.
src/components/WalletProviders.tsx -- two consumers but kept shared rather than folded into a feature dir.
Components consumed only through BaseLayout.tsx / Static.tsx (Logo/, EnergyConsumptionChart/, FeedbackWidget/, MatomoOptOut.tsx, History/, TranslationChartImage/) -- shared via layouts, pending team decision
A component-disposition audit identified
"use client"components with exactly one consumer (with a couple of borderline cases noted). They should live next to that consumer in a_components/directory, not in the sharedsrc/components/namespace.Single PR. Each move =
git mv+ import path updates + verify build.Items
src/components/CentralizedExchanges/->app/[locale]/get-eth/_components/CentralizedExchanges/app/[locale]/get-eth/_components/CentralizedExchangesLazy.tsx(dynamic import)src/components/StablecoinAccordion/->app/[locale]/stablecoins/_components/StablecoinAccordion/src/components/StablecoinsTable.tsx->app/[locale]/stablecoins/_components/StablecoinsTable.tsxsrc/components/Layer2NetworksTable/->app/[locale]/layer-2/networks/_components/Layer2NetworksTable/useNetworkColumns,useNetworkFilters); ensure all internal imports update correctlysrc/components/StartWithEthereumFlow/->app/[locale]/start/_components/StartWithEthereumFlow/src/components/EthPriceCard.tsx->app/[locale]/get-eth/_components/EthPriceCard.tsxsrc/components/ConnectToEthereumButton/-> co-locate insidesrc/components/StartWithEthereumFlow/ConnectYourWallet/(or with StartWithEthereumFlow's new home once that relocates)"use client"); sits inside the StartWithEthereumFlow featuresrc/components/FindWalletProductTable/->app/[locale]/wallets/find-wallet/_components/FindWalletProductTable/(borderline)src/components/for designer discoverabilityVerification before merge
pnpm lintpassesnpx tsc --noEmitpassespnpm buildpassesgit grep "from \"@/components/<MovedName>"hits remainingLayer2NetworksTable/andStartWithEthereumFlow/resolve correctly after the moveFindWalletProductTable/if it moves)Out of scope
src/components/ListingMethodology/-- brand new and designed for reuse on other pages; only one consumer today but the design intent is shared. Stays insrc/components/.src/components/WalletProviders.tsx-- two consumers but kept shared rather than folded into a feature dir.BaseLayout.tsx/Static.tsx(Logo/,EnergyConsumptionChart/,FeedbackWidget/,MatomoOptOut.tsx,History/,TranslationChartImage/) -- shared via layouts, pending team decisionClientOnly.tsx, etc.) -- intentionally left alone per team decision