chore: Bump nextjs and react#142
Open
chrstph-dvx wants to merge 16 commits into
Open
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
fdb8dbc to
d79c2f5
Compare
d79c2f5 to
dbe0325
Compare
ab7c931 to
b7ba50e
Compare
b7ba50e to
000018f
Compare
000018f to
2530c9c
Compare
2530c9c to
6ba214a
Compare
There was a problem hiding this comment.
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', |
3667696 to
b7cf866
Compare
c9e895e to
a27d1ca
Compare
315f88f to
0d6a9c0
Compare
bump nextjs, react, react-dom
0d6a9c0 to
efe78f2
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Steps to test