Releases: santino/react-concurrent-router
v1.8.0
🚀 Major Project Modernisation
This release brings comprehensive infrastructure updates and a fix that improves the overall developer experience.
✨ Key Improvements
🔧 Route Renderer Refresh Fix
- Fixed: Route renderer now properly remounts on navigation
- Impact: Error Boundaries in consumer applications now reset correctly after navigation
- Technical: Added key prop to RouteRenderer Fragment to force proper remounting
�� Dependency Updates
- Updated all devDependencies to latest secure versions
- Replaced deprecated
rollup-plugin-terserwith@rollup/plugin-terser - Added ES module support with
"type": "module"in package.json - Updated React to 19.1.1 and React DOM to 19.1.1
- Updated Jest to 30.x and related testing libraries
🛠️ Build & CI/CD Improvements
- Updated GitHub Actions to use Node.js 20, 22, 24 (removed EOL versions)
- Added security workflow with automated vulnerability scanning
- Updated all GitHub Actions to latest versions (v4, v3)
- Added comprehensive GitHub templates (issues, PRs, contributing, CoC)
📚 Documentation Enhancements
- Fixed grammar and spelling throughout README
- Added Key Features section with visual highlights
- Added Quick Start section for better onboarding
- Added Contributing and Code of Conduct sections
- Updated installation requirements to reflect Node.js 20+
🧪 Testing Improvements
- Added dedicated test for route renderer refresh behavior
- Improved test robustness and error handling
- All 135 tests passing with React 19 compatibility
🎯 What This Means for You
For Consumers:
- ✅ Error Boundaries now work correctly after navigation
- ✅ No breaking changes - all improvements are additive
- ✅ Better React 19 support
- ✅ Improved documentation and examples
For Contributors:
- ✅ Modern development environment
- ✅ Better CI/CD pipeline
- ✅ Comprehensive community guidelines
- ✅ Enhanced security scanning
🔗 Related Links
Note: This release includes no breaking changes. All improvements are additive and backward compatible.
v1.7.0
Full Changelog: v1.6.3...v1.7.0
New features:
- Improve performance by preventing Route Component (and nested tree) re-renders by avoiding state update when
isPendingEntrychanges would not be used
Internal changes:
- Updated dependencies
v1.6.3
Full Changelog: v1.6.1...v1.6.3
Bug fix:
- Make sure skip render only affects current navigation action and not future navigation (e.g. backward/forward)
v1.6.1
Full Changelog: v1.6.0...v1.6.1
Bug fix:
- Force route component remount. This is necessary when navigating from one route to another that renders the same component. This should not just be updated with new props but go through a fresh cycle of unmount and remount.
Ultimately this also fixes issues with history navigation (back/forward).
Extremely useful when navigating between pages with the same route but with different params (search/hash), to make sure components go through a fresh rendering cycle.
Internal changes:
- Updated all dependencies
v1.6.0
Full Changelog: v1.5.2...v1.6.0
New features:
- Support
assistPrefetchon individual routes
assistPrefetchis the config option that allows the router to integrate data prefetch requests with React Suspense by transforming your fetch requests into "Suspendable" resources.
Before this versionassistPrefetchcould only be applied globally as a router option.
This version introduces support toassistPrefetchon individual routes.
This is extremely useful as it allows your application to use a data fetching library of your choice (such as Relay), but also to handle custom fetch for some routes that can leverage the React Suspense integration offered by RCR
Internal changes:
- Updated all dependencies
- Updated README documentation
v1.5.2
Full Changelog: v1.5.0...v1.5.2
Bug fix:
- Query param values are now URI encoded. Query param names, instead, are not encoded since it is bad design to have characters that are reserved for URIs within query params, as they are likely to break params parsing.
Internal changes:
- Updated all dependencies
v1.5.0
Full Changelog: v1.4.0...v1.5.0
New features:
- Rewrite hooks to force re-render with up-to-date values
Hooks likeuseHistory,useParams, anduseSearchParamsreturn values that are updated every time a new entry is computed by the router.
Given we have introduced, in v1.4.0, a functionality to skip render, we must consider that rendered Route components are no longer necessarily re-rendered when computing a router entry; hence they might not receive up-to-date values from the router.
This change makes sure that hooks returning values related to router entries (history, location, params) are always updated even when the Route component is not re-rendered.
v1.4.0
Full Changelog: v1.3.0...v1.4.0
New features:
- Add
replaceoption touseSearchParamshook to replace history entry and skip render.
This is useful when wanting to keep query parameters in sync with user interactions, f.i. to support page refresh or URL sharing, while keeping the ability to render the page consistently retaining the effects of user interactions.
Internal changes:
- Updated all dependencies
- Updated README documentation
v1.3.0
Full Changelog: v1.2.1...v1.3.0
New features:
Introduce useParams and useSearchParams hooks
Internal changes:
- Updated all dependencies
- Updated README documentation
v1.2.1
Full Changelog: v1.2.0...v1.2.1
Fixes:
- Fixed functionality of
goBackandgoForwardfunctions exposed byuseNavigationhook.
Breaking changes:
- removed
canGofunction (available only on Memory router) fromuseNavigationhook.
Note: although this is technically a breaking change, it is not released as a major version because the function was broken as it was actually no longer exposed by the underlying dependency
history.
Internal changes:
- Updated all dependencies
- Updated GitHub workflows to use Node 18 (current) instead of Node 17