refactor: convert CoursewareContainer to TypeScript (#2021)
Rename src/courseware/CoursewareContainer.jsx → .tsx with the minimum annotations to compile. No behavior change; fast-follow to the de-class (#2008/#2020) so the courseware React Query peels happen in TS-land. - state: RootState on the inline useSelectors - useRef<any> for the two loose refs (mirrored props + memoized guards); reselect infers the redirect helpers + createSelector selectors, so no annotations there - courseStatus asserted `as CourseStatus` at the read (a valid CourseStatus from its source); courseId coerced `?? undefined` only at the TabPage prop, since the effect's ids-mismatch bail needs courseId to stay string | null - dispatch stays plain useDispatch(); no typed-dispatch primitive added — typed thunk dispatch would only serve the Redux being removed Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
B
Brian Smith committed
020a3eebf9fddc86956d187c4e128624cc4a2f48
Parent: a3a4bcf
Committed by GitHub <noreply@github.com>
on 8/24/2026, 11:00:03 PM