Skip to content

feat(web): upgrade to React 19 - #23

Merged
RyPope merged 1 commit into
mainfrom
feat/react-19
Oct 31, 2026
Merged

RyPope merged 1 commit into
mainfrom
feat/react-19

Conversation

@RyPope

@RyPope RyPope commented Oct 31, 2026

Copy link
Copy Markdown
Owner

Moves react, react-dom, @types/react and @types/react-dom to 19.3 together. Dependabot proposed these separately (#11, #19), which can't work: react-dom 19 requires react 19.

Breaking changes handled

  • useRef requires an argument in React 19's types: useRef<DraftSaver | undefined>(undefined) in useWorkspace.
  • Nothing else in the app uses APIs removed in 19 (no ReactDOM.render, defaultProps, propTypes, string refs or legacy context). The entry point already uses createRoot.

Libraries checked

react-router-dom 7, @tanstack/react-query 5, and @monaco-editor/react 4.7 all support React 19.

Verification

  • npm run typecheck, npm test (17 passed), npm run lint, npm run build.
  • Manually against a running stack: problem list, workspace (editor, Run, Submit accepted 71/71), Solutions tab with Open in editor, and the Progress page. No React warnings or errors in the console.

The toolchain upgrade (TypeScript, Vite, Vitest, ESLint) follows in a separate PR stacked on this one.

useRef now requires an initial value, so the draft saver ref is created with undefined.
@RyPope
RyPope merged commit ff4d7ad into main Oct 31, 2026
5 checks passed
@RyPope
RyPope deleted the feat/react-19 branch October 31, 2026 06:28
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.

1 participant