For teams with class components and a React 19 deadline
Class Upgrade Deskref="input", componentWillReceiveProps, contextTypes, this.state after an await. The mechanical parts are fixed right here; the judgement calls get a review.
Paste one React class component file. Your browser finds every string ref and turns the static ones into createRef fields, routes componentWillMount, componentWillReceiveProps and componentWillUpdate to their replacements by what their body does (a side-effect-only componentWillMount is moved for you), finds legacy context providers and consumers and drafts the context module, and flags this.state read after an await - the React 18 batching bug. Then the review, and the whole upgraded file.
The component free
The scan free
What the scan found
Everything the upgrade touches
The skills' upgrade checklist
The upgraded file free
What the page changed itself - every static string ref turned into a createRef field read as .current, and a componentWillMount that only runs side effects renamed to componentDidMount. Everything that needs a decision is left exactly as it was.
upgraded.jsx
The review metered
Pricing as soon as the session is ready...
Sign inThe reply could not be read. Here it is as it came back:
Caveats
Caveats
The page's check of this reply
Saved reviews
How it works - and what it cannot see
The scan reads the JSX itself: comments, strings, template literals and regex literals are masked (an apostrophe in JSX text does not open a string), each class component is matched to its closing brace and its members read at depth one - so it can tell a componentWillReceiveProps that fetches (componentDidUpdate) from one that only derives state (getDerivedStateFromProps), and a componentWillUpdate that measures the DOM (getSnapshotBeforeUpdate) from one that runs effects. It follows the four skills' decision tables case by case, never treats an UNSAFE_ prefix as a fix, and treats legacy context as the cross-file migration it always is.
It cannot see the other files a context migration touches, setState chains hidden in helpers, or whether an intermediate render really has to show - that is the review. The page re-scans the upgraded file, so a fix that did not land is flagged rather than trusted, and every class keeps its name. It reads the code; it does not compile or run it, so run your tests before you ship.