What's Changed
- Configuration option to customize the error view - feedback by @svara in #163
- Modal redirects feedback by @svara in #160
- fix: typo by @frenkel in #170
- Bring back the authentication flow by @joemasilotti in #168
- Animate replace actions with a fade animation by @joemasilotti in #166
- Configuration option to customize the error view by @joemasilotti in #158
- Lazy load tabs by @joemasilotti in #157
- Pop presenting controller if redirected to modal by @joemasilotti in #154
- Configuration to hide the tab bar on push by @joemasilotti in #159
- Renames
Hotwire.config.hidesTabBarWhenPushedby @joemasilotti in #193 - Support UISearchTab on iOS 26 - feedback by @svara in #197
- Support UISearchTab on iOS 26 by @joemasilotti in #185
- Allow universal links to open in app within SafariViewController - feedback by @svara in #195
- Allow universal links to open in app within SafariViewController by @dennispaagman in #191
- Cancel leaked WKWebView navigations in test simulator by @olivaresf in #229
- Replace TurboError with structured error types and improve cold boot retry by @olivaresf in #231
- Allow clients to provide a custom log destination by @zoejessica in #156
- Fix refresh_historical_location restoring from snapshot cache by @hulloitskai in #241
- Add configuration to lazy load tabs by @joemasilotti in #194
- Always provide a retry handler, fix cold-boot retries, and expand logging by @svara in #247
- Url path preserving backslash feedback by @joemasilotti in #211
- Handle requests for new windows by proposing a new visit by @zoejessica in #225
- Position menu (action sheet) on element that triggered it by @dennispaagman in #196
- Introduce Navigating protocol to make decision handlers testable by @svara in #246
- Fix TabBarMinimize and prefersLargeTitle behaviour by @nbelzer in #199
- Fix: Unhandled completion handlers cause crashes when delegate is deallocated by @noah44846 in #233
- Stamp routed location on view controllers for navigation identity by @svara in #248
- Pass the full
VisitProposalto registeredRouteDecisionHandlerinstances by @svara in #249 - Move
lazyLoadTabsfromHotwire.configtoHotwireTabBarControllerinitializer by @svara in #250 - Only pop the pre-redirect controller when a redirect crosses contexts by @svara in #251
- Set
lazyLoadTabstofalseby default by @svara in #252
Breaking Changes
Note that there are a couple of breaking API changes in this release:
- Custom route decision handlers and web view policy decision handlers now receive the
Navigatingprotocol instead of the concreteNavigator. Route decision handlers also receive aVisitProposalin place of theURL— updatematches(location:configuration:)/handle(location:configuration:navigator:)tomatches(proposal:configuration:)/handle(proposal:configuration:navigator:), readingproposal.urlwhere you previously usedlocation. See #249 and #246 - Failures are now reported as a structured
HotwireNativeError(composed ofHTTPError,LoadError, andWebError) instead of a bareError.NavigatorDelegate.visitableDidFailRequest(_:error:retryHandler:)and the session failure callbacks now hand you aHotwireNativeError, a retry handler is always supplied, and the previousTurboErrortype used for visit failures has been replaced. See #231 and #247
New Contributors
- @frenkel made their first contribution in #170
- @dennispaagman made their first contribution in #191
- @zoejessica made their first contribution in #156
- @hulloitskai made their first contribution in #241
- @nbelzer made their first contribution in #199
- @noah44846 made their first contribution in #233
Full Changelog: 1.2.2...1.3.0