jam-cloud/agent-tasks/react-console-errors/fix-critical-react-errors/progress.md

1.9 KiB

Progress

Goal

Reduce React console/runtime errors reported in browser logs, prioritizing crash-level issues.

Plan

  • Identify source components from stack traces
  • Fix crash-level runtime errors (Select is not defined, invalid React DOM usage)
  • Fix high-noise compatibility warnings in touched components (selected on <option>, objectName prop, legacy lifecycle names, cellspacing/cellpadding)
  • Run targeted checks and summarize remaining warnings
  • Prevent browser-mode crash when video store calls native-only jamClient capture-resolution APIs
  • Reduce additional high-noise UI warnings (bind(this) in render, JamClassScreen legacy lifecycle, missing row keys)

Notes

  • Patched JamTrackAutoComplete to gracefully fall back when Select is unavailable.
  • Fixed TeacherExperienceEditableList unmount lifecycle typo and invalid input markup.
  • Updated WebcamViewer to use controlled <select> values instead of selected on <option>.
  • Added ReactRailsUJS.findOrCreateRoot compatibility override in react-init.js to avoid repeated createRoot warning path.
  • Did a targeted static validation via rg/git diff review; full browser/runtime test pass still needed.
  • Addressed browser/client-mode regression context.jamClient.FTUEGetCaptureResolution is not a function in VideoStore.onRefresh.
  • Added missing capture-resolution API stubs to fakeJamClient.js (FTUEGetCaptureResolution, FTUEGetCurrentCaptureResolution, FTUESetCaptureResolution) and wired exports.
  • Hardened VideoStore and webcam_viewer to guard optional capture-resolution APIs and degrade gracefully when unavailable.
  • Removed render-time .bind(this) usage in ChatWindow, FindSessionOpen, and SessionFilesBtn to suppress create-react-class autobind warnings.
  • Renamed JamClassScreen.componentWillUpdate to UNSAFE_componentWillUpdate.
  • Added explicit key props for static onboarding rows in AccountOnboarderScreen.