Files
OpenNoodl/dev-docs/tasks/phase-2/TASK-003-react-19-runtime/CHECKLIST.md

2.3 KiB

TASK-003: Runtime React 18.3.1 Upgrade - CHECKLIST

Status: COMPLETE


Code Migration

  • Main entry point - Update noodl-viewer-react.js

    • Replace ReactDOM.render() with createRoot().render()
    • Replace ReactDOM.hydrate() with hydrateRoot()
    • Add root management (currentRoot variable)
    • Add unmount() method
  • React component node - Update react-component-node.js

    • Remove ReactDOM.findDOMNode() usage
    • Add DOM element storage via ref callback
    • Update getDOMElement() to use stored reference
    • Remove unused ReactDOM import
  • Group component - Update Group.tsx

    • Convert UNSAFE_componentWillReceiveProps to componentDidUpdate
  • Drag component - Update Drag.tsx

    • Convert UNSAFE_componentWillReceiveProps to componentDidUpdate

UMD Bundles

  • Download React 18.3.1 bundles to static/shared/
    • react.production.min.js (10.7KB)
    • react-dom.production.min.js (128KB)

Note: React 19 removed UMD builds. React 18.3.1 is the latest with UMD support.


SSR Configuration

  • Update SSR package.json - static/ssr/package.json
    • Update react to ^18.3.1
    • Update react-dom to ^18.3.1

Build Verification

  • Run viewer build - npm run ci:build:viewer
    • Webpack compiles without errors
    • React externals properly configured

Documentation

  • Create CHANGELOG.md - Document all changes
  • Create CHECKLIST.md - This file
  • Create LEARNINGS-RUNTIME.md - Runtime architecture docs in dev-docs/reference/

Testing (Manual)

  • Test in editor - Open project and verify preview works
  • Test deployed project - Verify published projects render correctly
  • Test SSR - Verify server-side rendering works (if applicable)

Note: Manual testing requires running the editor. Build verification passed.


Summary

Category Items Completed
Code Migration 4 files 4/4
UMD Bundles 2 files 2/2
SSR Config 1 file 1/1
Build 1 verification 1/1
Documentation 3 files 3/3
Manual Testing 3 items Pending

Overall: 11/14 items complete (79%)

Manual testing deferred to integration testing phase.