The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
- Adds support for TCA v1.5.0. (Thanks @mschonvogel!)
- Ensures that `TCARouter` does not over-observe state. Resolves an issue where pull-to-refresh would not work properly (#57), and improves performance. (Thanks @heoblitz!)
- Ensures that `TCARouter` does not under-observe state. Resolves an issue where navigating back after a state change could reset
the previous screen to its state before pushing.
- Makes the library compatible with the Composable Architecture version 1.0 (thanks @rhysm94!)
- Makes the library compatible with the latest pre-1.0 changes to Composable Architecture (thanks @rhysm94!)
- Updates the example code to reflect latest best practices (thanks @rhysm94!)
- Fixes most deprecations (thanks @jshier)
- Updates library code and examples to use TCA's new ReducerProtocol.
- Simplifies the API a little.
- Ensures latest version of a screen is cached for display during a dismiss animation (#27). Thanks @salqueng!
- Avoids unnecessary re-renders in TCARouter (#20) (Thanks to @dannyhertz)
- Adds MIT licence (#15)
- Presentation and navigation can now be managed in a single routes array, removing the need for separate `PresentationStore` and `NavigationStore`. The new `TCARouter` can handle both in one.
- Convenience methods are now extensions on `RoutableCollection`, so this library no longer needs to duplicate the convenience methods from `FlowStacks`.
- Large-scale navigation updates can now be made within an `Effect.withDelaysIfUnsupported` call, and will be broken down into smaller updates that SwiftUI supports. This works around a limitation in SwiftUI that only allows one screen to be pushed, presented or dismissed at a time.
- Cancellation of in-flight effects is now managed as part of `withRouteReducer` function, which ensures effects are tagged for cancellation before combining with the reducer that updates routes. This fixes a bug where long-lived effects initiated by the coordinator would be cancelled if they were triggered by a screen that has been dismissed.