Skip to content

chore: Bump nextjs and react#142

Open
chrstph-dvx wants to merge 16 commits into
masterfrom
fs-1459-upgrade-to-turbopack
Open

chore: Bump nextjs and react#142
chrstph-dvx wants to merge 16 commits into
masterfrom
fs-1459-upgrade-to-turbopack

Conversation

@chrstph-dvx
Copy link
Copy Markdown
Contributor

@chrstph-dvx chrstph-dvx commented Feb 2, 2026

Summary

Steps to test

@vercel
Copy link
Copy Markdown

vercel Bot commented Feb 2, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
arbitrum-portal Ready Ready Preview May 22, 2026 10:32am

Request Review

@chrstph-dvx chrstph-dvx marked this pull request as draft February 2, 2026 15:52
@chrstph-dvx chrstph-dvx force-pushed the fs-1459-upgrade-to-turbopack branch from fdb8dbc to d79c2f5 Compare February 9, 2026 16:22
@chrstph-dvx chrstph-dvx force-pushed the fs-1459-upgrade-to-turbopack branch from d79c2f5 to dbe0325 Compare February 11, 2026 16:03
@chrstph-dvx chrstph-dvx changed the title chore: Migrate to turbopack chore: Bump nextjs and react Feb 16, 2026
@chrstph-dvx chrstph-dvx force-pushed the fs-1459-upgrade-to-turbopack branch from ab7c931 to b7ba50e Compare February 16, 2026 14:19
@chrstph-dvx chrstph-dvx force-pushed the fs-1459-upgrade-to-turbopack branch from b7ba50e to 000018f Compare February 16, 2026 20:17
@chrstph-dvx chrstph-dvx force-pushed the fs-1459-upgrade-to-turbopack branch from 000018f to 2530c9c Compare May 15, 2026 14:22
@chrstph-dvx chrstph-dvx marked this pull request as ready for review May 19, 2026 09:42
Copilot AI review requested due to automatic review settings May 19, 2026 09:42
@chrstph-dvx chrstph-dvx force-pushed the fs-1459-upgrade-to-turbopack branch from 2530c9c to 6ba214a Compare May 19, 2026 09:46
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR upgrades the monorepo’s Next.js/React stack and adapts the codebase to the updated runtime/typing expectations, including a migration of the shared Tooltip implementation and a set of compatibility refactors across the Portal, Bridge UI, and App packages.

Changes:

  • Bump Next.js/React (and related types/deps) across packages, plus update ESLint config for the newer Next/ESLint ecosystem.
  • Replace the previous Tippy-based Tooltip with a Radix Tooltip and update imports/props across the UI.
  • Update App Router pages/route handlers to async-await params/searchParams, and tighten client/runtime guards (timeouts, localStorage availability).

Reviewed changes

Copilot reviewed 90 out of 91 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tsconfig.base.json Updates @/app/* path mapping to point at packages/app/* for shared imports.
packages/portal/scripts/fetch-data.js Adds request timeout + keeps existing cached files on fetch failure.
packages/portal/package.json Bumps React/ReactDOM/types and adds Radix Tooltip dependency.
packages/portal/hooks/useFilteredProjects.ts Extracts pure getFilteredProjects for server usage while keeping the hook.
packages/portal/components/SvgIcons.tsx Removes an SVG attribute.
packages/portal/components/ProjectPanel/SimilarProjects.tsx Uses keyed React.Fragment in list rendering.
packages/portal/components/ProjectPanel/ProjectPanel.tsx Switches Tooltip import to shared Radix-based tooltip path.
packages/portal/components/ProjectPanel/ChainInfoWidget.tsx Updates Tooltip usage/import for shared tooltip.
packages/portal/components/ProjectItemBox.tsx Updates Tooltip import for shared tooltip.
packages/portal/components/OrbitChainPanel/OrbitChainDetailsTable.tsx Avoids using reserved key prop by renaming to id.
packages/portal/components/HomePage/Resources.tsx Replaces dynamic carousel import with direct import.
packages/portal/components/HomePage/HeroBanner.tsx Adjusts list keys for highlighted project logos.
packages/portal/components/FAQs.tsx Updates Headless UI Disclosure usage to newer component API.
packages/portal/components/DyorChecklist.tsx Adds readOnly to a controlled checkbox input.
packages/portal/components/CommunitySpotlight.tsx Replaces dynamic carousel import with direct import.
packages/portal/components/Community/CommunityEvents.tsx Replaces dynamic carousel import with direct import.
packages/portal/components/ChainsMetrics/ChainsTable.tsx Uses usePathname + avoids redundant router.push when query string is unchanged.
packages/portal/components/Card.tsx Prevents analyticsProps from being spread into ExternalLink props.
packages/portal/common/getServerSideAppParams.ts Makes params/searchParams awaitable and updates parsing accordingly.
packages/portal/common/getMetaData.ts Makes metadata generation async to await server-side params parsing.
packages/portal/app/page.tsx Updates metadata + page component to async server param parsing.
packages/arb-token-bridge-ui/src/util/networks.ts Adds safer localStorage availability checks before get/set operations.
packages/arb-token-bridge-ui/src/components/TransferPanel/TransferPanel.tsx Migrates Tooltip usage to new API/props and adjusts CTA rendering structure.
packages/arb-token-bridge-ui/src/components/TransferPanel/TokenSearch.tsx Updates return type to React.JSX.Element.
packages/arb-token-bridge-ui/src/components/TransferPanel/TokenRow.tsx Moves BlockExplorerTokenLink into a dedicated module and updates JSX return type.
packages/arb-token-bridge-ui/src/components/TransferPanel/TokenLogo.tsx Updates fallback type to React.JSX.Element.
packages/arb-token-bridge-ui/src/components/TransferPanel/TokenInfoTooltip.tsx Removes Tippy-based tooltip implementation (file deletion).
packages/arb-token-bridge-ui/src/components/TransferPanel/TokenImportDialog.tsx Updates return type to React.JSX.Element.
packages/arb-token-bridge-ui/src/components/TransferPanel/TokenButton.tsx Updates return type to React.JSX.Element.
packages/arb-token-bridge-ui/src/components/TransferPanel/Routes/Route.tsx Switches Tooltip import to shared Radix-based tooltip path.
packages/arb-token-bridge-ui/src/components/TransferPanel/DestinationTokenSearch.tsx Updates return type to React.JSX.Element.
packages/arb-token-bridge-ui/src/components/TransferPanel/DestinationTokenButton.tsx Updates return type to React.JSX.Element.
packages/arb-token-bridge-ui/src/components/TransferPanel/BlockExplorerTokenLink.tsx Introduces extracted explorer link component.
packages/arb-token-bridge-ui/src/components/TransactionHistory/TransactionsTableRowAction.tsx Switches Tooltip import to shared Radix-based tooltip path.
packages/arb-token-bridge-ui/src/components/TransactionHistory/TransactionHistoryTable.tsx Adjusts react-virtualized column config (cellDataGetter/cellRenderer) and Tooltip import.
packages/arb-token-bridge-ui/src/components/TransactionHistory/TransactionHistorySearchBar.tsx Updates Tooltip props to Radix-style content props and wrapper class.
packages/arb-token-bridge-ui/src/components/syncers/TokenListSyncer.tsx Updates return type to React.JSX.Element.
packages/arb-token-bridge-ui/src/components/syncers/ArbTokenBridgeStoreSync.tsx Updates return type to React.JSX.Element.
packages/arb-token-bridge-ui/src/components/RecoverFunds.tsx Updates Tooltip usage, react-virtualized column headers, and adds shared cellDataGetter.
packages/arb-token-bridge-ui/src/components/common/StatusBadge.tsx Updates return type to React.JSX.Element.
packages/arb-token-bridge-ui/src/components/common/SafeImage.tsx Tightens SWR typing and updates fallback type to React.JSX.Element.
packages/arb-token-bridge-ui/src/components/common/NetworkSelectionContainer.tsx Switches Tooltip import and adds missing key props for rendered rows.
packages/arb-token-bridge-ui/src/components/common/Dialog2.tsx Makes resolver ref nullable and uses optional chaining on resolve.
packages/arb-token-bridge-ui/src/components/common/Dialog.tsx Makes resolver ref nullable, updates title type, and adds React import for React namespace typing.
packages/arb-token-bridge-ui/src/components/App/App.tsx Updates return type to `React.JSX.Element
packages/arb-token-bridge-ui/src/app/api/teleports/eth.ts Moves from NextRequest to Web Request typing for handler input.
packages/arb-token-bridge-ui/src/app/api/teleports/erc20.ts Moves from NextRequest to Web Request typing for handler input.
packages/arb-token-bridge-ui/src/app/api/moonpay.ts Moves from NextRequest to Web Request typing for handler input.
packages/arb-token-bridge-ui/src/app/api/denylist.ts Moves from NextRequest to Web Request typing for handler input.
packages/arb-token-bridge-ui/src/app/api/chains/[chainId]/block-number.ts Awaits params and uses Web Request typing.
packages/arb-token-bridge-ui/src/app/api/cctp/[type].ts Awaits params and uses Web Request typing.
packages/arb-token-bridge-ui/package.json Bumps Next/React/Headless UI/types and adds Radix Tooltip dependency.
packages/app/tailwind.config.js Extends Tailwind content globs to include packages/app/components.
packages/app/src/types.ts Adds shared SearchParamsProps type with awaitable searchParams.
packages/app/src/proxy.ts Renames exported middleware function to proxy.
packages/app/src/components/Tooltip.tsx Removes legacy Tippy tooltip component (file deletion).
packages/app/src/components/earn/PortfolioSummaryCards.tsx Migrates tooltip usage to shared Radix tooltip and updates placement props.
packages/app/src/components/earn/OpportunityRow.tsx Migrates tooltip usage to shared Radix tooltip and updates placement props.
packages/app/src/components/earn/OpportunityCard.tsx Migrates tooltip usage to shared Radix tooltip and updates placement props.
packages/app/src/components/earn/OpportunitiesTable.tsx Migrates tooltip usage to shared Radix tooltip and updates placement props.
packages/app/src/components/earn/BestOpportunityCard.tsx Migrates tooltip usage to shared Radix tooltip.
packages/app/src/components/AppShell/providers/AppProviders.tsx Wraps app with TooltipProvider.
packages/app/src/app/api/onchain-actions/v1/earn/opportunity/[category]/[id]/transactions/route.ts Awaits params in route handler and updates parsing.
packages/app/src/app/api/onchain-actions/v1/earn/opportunity/[category]/[id]/transaction-quote/route.ts Awaits params in route handler and updates quote input.
packages/app/src/app/api/onchain-actions/v1/earn/opportunity/[category]/[id]/route.ts Awaits params in route handler and updates parsing.
packages/app/src/app/api/onchain-actions/v1/earn/opportunity/[category]/[id]/historical-data/route.ts Awaits params and sets explicit revalidate value.
packages/app/src/app/api/onchain-actions/v1/earn/opportunity/[category]/[id]/available-actions/route.ts Awaits params in route handler and updates parsing.
packages/app/src/app/api/crosschain-transfers/lifi/tokens/route.ts Inlines revalidate value and removes exported constant import.
packages/app/src/app/api/crosschain-transfers/lifi/tokens/registry.ts Removes exported LIFI_TOKENS_REVALIDATE_SECONDS and inlines cache revalidate.
packages/app/src/app/(with-sidebar)/bridge/page.tsx Uses shared SearchParamsProps with awaitable searchParams.
packages/app/src/app/(with-sidebar)/bridge/buy/page.tsx Uses shared SearchParamsProps with awaitable searchParams.
packages/app/src/app/(with-sidebar)/bridge/buy/[slug]/page.tsx Makes params/searchParams awaitable and resolves before rendering.
packages/app/src/app/(with-sidebar)/(portal)/search/[searchSlug]/page.tsx Updates metadata/page to async server param parsing.
packages/app/src/app/(with-sidebar)/(portal)/projects/page.tsx Uses server-safe getFilteredProjects and awaits server params.
packages/app/src/app/(with-sidebar)/(portal)/projects/[categorySlug]/page.tsx Uses server-safe getFilteredProjects and awaits server params.
packages/app/src/app/(with-sidebar)/(portal)/learn/page.tsx Adds fetch timeout via AbortSignal.timeout.
packages/app/src/app/(with-sidebar)/(portal)/earn/opportunity/[category]/[id]/page.tsx Awaits params for metadata + page routing and validates address/category.
packages/app/src/app/(with-sidebar)/(portal)/community/page.tsx Adds fetch timeout via AbortSignal.timeout.
packages/app/src/app/(with-sidebar)/(portal)/chains/ecosystem/page.tsx Makes metadata generation async to await server params.
packages/app/src/app/(with-sidebar)/(portal)/build/page.tsx Adds fetch timeout via AbortSignal.timeout.
packages/app/src/app/(with-sidebar)/(portal)/bookmarks/page.tsx Replaces client-only dynamic import with direct import of client component.
packages/app/src/app/(embed)/bridge/embed/page.tsx Uses shared SearchParamsProps with awaitable searchParams.
packages/app/src/app/(embed)/bridge/embed/buy/page.tsx Uses shared SearchParamsProps with awaitable searchParams.
packages/app/src/app/(embed)/bridge/embed/buy/[slug]/page.tsx Makes params/searchParams awaitable and resolves before rendering.
packages/app/src/app.css Adds tooltip open/close animations for the new tooltip implementation.
packages/app/package.json Bumps Next/React/types, adds Radix Tooltip, adjusts Tailwind Merge, and enables turbopack build flag.
packages/app/next.config.js Adds turbopack root configuration and a webpack alias override.
packages/app/components/common/Tooltip.tsx Adds new shared Radix Tooltip component + provider export.
package.json Updates devDependencies for Next/Headless UI/Heroicons alignment.
eslint.config.mjs Reworks ESLint flat config to consume OffchainLabs base/next configs directly.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +34 to +38
return (
<TooltipPrimitive.Root {...tooltipProps}>
<TooltipPrimitive.Trigger asChild>
<span className={twMerge('inline-block', wrapperClassName)}>{children}</span>
</TooltipPrimitive.Trigger>
Comment on lines +44 to +45
contentProps?.className,
'tooltip-animated z-[1102] min-w-0 max-w-[300px] bg-gray-8 overflow-hidden rounded-[5px] px-2 py-1 text-sm leading-5 border border-[#777] whitespace-normal break-words',
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants