Skip to content

Conversation

@felixrieseberg
Copy link
Member

Summary

Upgrade React from 16.14 to 18.3. Depends on #1851 (RTL migration).

Changes (10 files, +267 −231)

Dependencies

  • react/react-dom: ^16.14.0 → ^18.3.1
  • react-mosaic-component: ^4.1.1 → ^6.1.1
  • @testing-library/react: ^12.1.5 → ^16.1.0
  • @types/react/@types/react-dom: → ^18.3.0
  • Added @types/react resolution to prevent duplicate type versions

Source changes

  • src/renderer/app.tsx: ReactDOM.render()createRoot().render()
  • src/renderer/components/settings-electron.tsx: Fix controlled checkbox (React 18 behavioral change)
  • src/renderer/components/output.tsx: Null-safe this.context?.mosaicActions
  • src/blueprint-react18.d.ts: Type augmentations for Blueprint v3 children prop

Test fixes (React 18 compat)

  • tests/renderer/app-spec.tsx: Wrap createRoot render in act()
  • rtl-spec/: Add waitFor() for MobX observer batching, act() for setState, blueprintNamespace in mosaic mock

Verification

  • tsc --noEmit: 0 errors
  • vitest run: 91 files, 806 passed
  • yarn start: builds and launches

@felixrieseberg felixrieseberg requested review from a team and codebytere as code owners February 10, 2026 01:45
@socket-security
Copy link

socket-security bot commented Feb 10, 2026

@felixrieseberg felixrieseberg marked this pull request as draft February 10, 2026 01:46
@felixrieseberg felixrieseberg force-pushed the felixr/enzyme-to-rtl-v2 branch from 3194677 to 34c5ce5 Compare February 10, 2026 01:48
Upgrade react/react-dom to ^18.3.1, react-mosaic-component to ^6.1.1,
and @testing-library/react to ^16.1.0. Migrate ReactDOM.render() to
createRoot(). Add Blueprint v3 type augmentations for React 18
children prop compatibility. Fix controlled input behavior in
settings-electron.tsx and null-safe context access in output.tsx.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@felixrieseberg felixrieseberg force-pushed the felixr/react-18-upgrade branch from 62014e2 to 7b75eba Compare February 10, 2026 01:49
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