Skip to content

Upgrade to Next 16 / React 19#207

Merged
LunaUrsa merged 4 commits into
mainfrom
upgrade/next-16
Jul 6, 2026
Merged

Upgrade to Next 16 / React 19#207
LunaUrsa merged 4 commits into
mainfrom
upgrade/next-16

Conversation

@sympact06

@sympact06 sympact06 commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

Bumps the whole stack:

  • next 15.2 -> 16.2, react 18 -> 19.2
  • @nextui-org/react -> @heroui/react (nextui is deprecated, same API so just the imports changed)
  • x-date-pickers 7 -> 8, apexcharts 4 -> 5, swiper 11 -> 14, rest to latest
  • MUI stays on 6.x for now, material-react-table v3 doesn't support 7+

Fallout from the upgrade:

  • next lint is removed in 16, CI and the .lint script now call eslint directly
  • Turbopack is the default bundler now and its CSS parser choked on some stray }; in style.css
  • small type fixes for React 19 / apexcharts 5

Verified locally: tsc, eslint, next build all green, clicked through /, /factsheets, /factsheets/[drug], /appeal and /webchat.

Known issue (pre-existing, not from this PR): the homepage counters never animate because Counter.tsx points useCountUp at a non-existent element id. Will fix separately.

sympact06 added 4 commits July 5, 2026 00:35
Next 16 removes the next lint command. Point CI and the .lint script
at eslint directly and ignore the generated .next/ and build/ dirs,
which eslint . picks up but next lint did not.
- next 15.2 -> 16.2, react/react-dom 18 -> 19.2 (+ @types)
- @nextui-org/react -> @heroui/react 2.8 (deprecated rename, same API)
- @mui/x-date-pickers 7 -> 8: AdapterDateFnsV3 import renamed to
  AdapterDateFns; transpilePackages workaround in next.config.js
  because the v8 ESM build trips over MUI 6's missing exports map
- MUI stays on latest 6.x: material-react-table v3 requires MUI 6
- apexcharts 4 -> 5 (+ react-apexcharts 2): ApexAxisChartSeries is no
  longer a global type, import it from the module
- swiper 11 -> 14, typescript 5.9, @types/node 24, remaining deps
  bumped to latest
- not-found: pass RedirectType.replace as value (React 19 types)
- tsconfig: reformatted by next build (react-jsx, .next/dev types)
Kept the Next 16 / React 19 dependency set, adopted main's newer bumps
(@emotion/styled, @widgetbot/react-embed, @types/aos, eslint-config-prettier,
eslint-plugin-import) and regenerated the lockfile, which also re-pins
tripsit_drug_db to the commit the new combo checker needs.
Counter.tsx needed a ref cast: react-countup typings predate React 19's
RefObject<T | null>.
@sympact06 sympact06 marked this pull request as ready for review July 6, 2026 10:39
@LunaUrsa LunaUrsa merged commit 8214c46 into main Jul 6, 2026
3 checks passed
@LunaUrsa LunaUrsa deleted the upgrade/next-16 branch July 6, 2026 14:40
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