Upgrade to Next.js 16 and React 19 #1

Merged
sb merged 5 commits from upgrade/nextjs-16 into main 2026-08-08 08:22:15 +10:00
Owner

Next.js 15 loses security support in two months. This brings the app onto Next 16.3 (Turbopack default, middleware.ts → proxy.ts), React 19.2, and Node 24 (Node 20 hit EOL in April 2026) — Dockerfile, install script, and deployment docs updated to match.

  • Migrated linting off the removed next lint command to a direct ESLint flat-config setup, which surfaced and fixed 13 real React anti-patterns (synchronous setState in effects, ref mutation during render, etc.) plus all pre-existing warnings (filter/pagination controls moved from a full-page reload to router.push(), two components switched watch() to useWatch for Compiler compatibility). A handful of intentional hard reloads (sign-in/out, the booking form's save/delete bypassing UnsavedChangesGuard) are unchanged, now documented inline.
  • Verified end-to-end: build/lint/202 tests green throughout; manually confirmed booking creation/edit with multiple cars, PDF generation to the OneDrive sync path, a WPForms webhook booking, and the chauffeur offer accept/decline flow all work correctly post-upgrade.
Next.js 15 loses security support in two months. This brings the app onto Next 16.3 (Turbopack default, middleware.ts → proxy.ts), React 19.2, and Node 24 (Node 20 hit EOL in April 2026) — Dockerfile, install script, and deployment docs updated to match. - Migrated linting off the removed next lint command to a direct ESLint flat-config setup, which surfaced and fixed 13 real React anti-patterns (synchronous setState in effects, ref mutation during render, etc.) plus all pre-existing warnings (filter/pagination controls moved from a full-page reload to router.push(), two components switched watch() to useWatch for Compiler compatibility). A handful of intentional hard reloads (sign-in/out, the booking form's save/delete bypassing UnsavedChangesGuard) are unchanged, now documented inline. - Verified end-to-end: build/lint/202 tests green throughout; manually confirmed booking creation/edit with multiple cars, PDF generation to the OneDrive sync path, a WPForms webhook booking, and the chauffeur offer accept/decline flow all work correctly post-upgrade.
sb added 3 commits 2026-08-08 07:43:53 +10:00
Next.js 15 loses security support in two months. Turbopack is now the
default bundler, middleware.ts was renamed to proxy.ts per the new
convention (behavior unchanged), and linting moved from the removed
next lint command to a direct ESLint flat-config setup, which also
caught and fixed 13 real React anti-patterns newly flagged by the
updated lint rules. Node 20 reached end-of-life in April 2026, so the
Dockerfile, install script, and deployment docs now target Node 24.
Missed in the v1.85.0 upgrade: the Tech Stack line in README.md and
the App Router description in docs/project-structure.md.
Filter/pagination controls now use router.push() instead of a full
window.location.href reload. AdminAccountsTable and IntegrationsForm
switched react-hook-form's watch() to useWatch, which the React
Compiler can memoize safely. Intentional hard reloads (sign-in/out,
BookingForm's save/delete-then-redirect bypassing UnsavedChangesGuard)
are unchanged, now with a comment explaining why. Also removed two
stale eslint-disable comments in BookingForm.tsx.
The installer already checks for and installs Node 24, but the update
script assumed whatever Node version was already on the box was fine.
It now runs the same check before installing dependencies.
Pass a branch name as the first argument to fetch and check it out
before pulling, instead of always updating whatever's currently
checked out. Prints a warning since this is for testing, not
production use.
sb merged commit 8cec8e5bdf into main 2026-08-08 08:22:15 +10:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sb/ACC-System!1
No description provided.