Commit ea7de0a
[React 19] Update Pro package for React 19 compatibility (#1943)
## Summary
**This is part 2 of the React 19 support effort** - updates the Pro
package (RSCProvider and RSCRoute) for React 19 compatibility.
## Changes
### 1. Import Pattern Updates for React 19
**Before (React 18):**
```typescript
import * as React from 'react';
React.createContext()
React.useContext()
```
**After (React 19):**
```typescript
import React, { createContext, useContext, type ReactNode } from 'react';
createContext()
useContext()
```
**Why:** React 19 changed module exports. Named imports work better with
tree-shaking and are the recommended pattern.
### 2. 'use client' Directives
Added to client-only components:
- ✅ `RSCProvider.tsx` - Context provider (uses hooks)
- ✅ `RSCRoute.tsx` - Route component (uses hooks)
**Why:** React 19's stricter server/client boundary requires explicit
'use client' for components using hooks, context, or browser APIs.
## Files Changed
- `packages/react-on-rails-pro/src/RSCProvider.tsx`
- `packages/react-on-rails-pro/src/RSCRoute.tsx`
## Testing
✅ Server rendering works correctly
✅ Client-side hydration successful
✅ RSC functionality preserved
✅ No breaking changes to API
## Dependencies
**Depends on:** PR #1942 (webpack configuration must be merged first for
builds to work)
## Impact
- ✅ Enables React 19 support in Pro package
- ✅ Maintains backward compatibility with React 18
- ✅ No API changes - drop-in compatible
- ✅ Pro-only changes - doesn't affect OSS package
## Follow-up
1. ✅ PR #1942: Webpack configuration (foundational)
2. ✅ This PR: Pro package changes
3. 🔜 Next: Documentation
## Related
- Part of breaking up #1937 into smaller, focused PRs
- Required for React 19 support
🤖 Generated with [Claude Code](https://claude.com/claude-code)
<!-- Reviewable:start -->
- - -
This change is [<img src="https://reviewable.io/review_button.svg"
height="34" align="absmiddle"
alt="Reviewable"/>](https://reviewable.io/reviews/shakacode/react_on_rails/1943)
<!-- Reviewable:end -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Refactor**
* Optimized internal type signatures and import structure for improved
code organization and consistency.
* **Bug Fixes**
* Enhanced error handling in RSC routing with improved error boundary
lifecycle management, providing better error recovery and display
capabilities.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Co-authored-by: Claude <[email protected]>1 parent 9be387a commit ea7de0a
File tree
2 files changed
+19
-17
lines changed- packages/react-on-rails-pro/src
2 files changed
+19
-17
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
16 | 18 | | |
17 | 19 | | |
18 | 20 | | |
19 | 21 | | |
20 | | - | |
| 22 | + | |
21 | 23 | | |
22 | | - | |
| 24 | + | |
23 | 25 | | |
24 | 26 | | |
25 | | - | |
| 27 | + | |
26 | 28 | | |
27 | 29 | | |
28 | 30 | | |
| |||
46 | 48 | | |
47 | 49 | | |
48 | 50 | | |
49 | | - | |
| 51 | + | |
50 | 52 | | |
51 | | - | |
| 53 | + | |
52 | 54 | | |
53 | 55 | | |
54 | 56 | | |
| |||
74 | 76 | | |
75 | 77 | | |
76 | 78 | | |
77 | | - | |
| 79 | + | |
78 | 80 | | |
79 | 81 | | |
80 | 82 | | |
| |||
95 | 97 | | |
96 | 98 | | |
97 | 99 | | |
98 | | - | |
| 100 | + | |
99 | 101 | | |
100 | 102 | | |
101 | 103 | | |
102 | | - | |
| 104 | + | |
103 | 105 | | |
104 | 106 | | |
105 | 107 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
| 19 | + | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
27 | | - | |
28 | | - | |
| 27 | + | |
| 28 | + | |
29 | 29 | | |
30 | 30 | | |
31 | | - | |
| 31 | + | |
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| |||
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
78 | | - | |
79 | | - | |
80 | | - | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
| |||
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
91 | | - | |
| 91 | + | |
92 | 92 | | |
93 | 93 | | |
94 | 94 | | |
| |||
0 commit comments