Commit Graph

64 Commits

Author SHA1 Message Date
Francisco Gindre c702319bb5
Merge pull request #122 from adamstener/onboarding-screen
Onboarding Screen
2021-12-08 14:32:39 -03:00
adam cc32e881ba Onboarding Screen 2021-12-07 06:18:35 -06:00
Daniel Haight 780dd0fafa [Experiment] Move `Send` routing into a parent `SendView`
This is to demonstrate having something like a 'Coordinator' that
handles the routing logic of the feature.

It is done as a seperate commit to compare against the original
implementation that has the routing logic encoded explicitely in
each view.
2021-11-21 14:51:32 +00:00
Daniel Haight a8fc8d79f7 Create a reducer to go back `Home` when finished sending
This is done as a seperate commit to demonstrate composing routing
logic where a 'child' feature can send messages to a 'parent'.
2021-11-21 14:51:32 +00:00
Daniel Haight 85395bb9f0 Add `Send` "Placeholder" Feature
This adds screens to represent a basic "Send" Feature. The main
purpose of this is two-fold.

1. To act as a placeholder for the actual journet
2. To demonstrate a slightly different navigation paradigm, i.e,
   a `NavigationView` with >1 depth.
2021-11-21 14:47:51 +00:00
Daniel Haight c6a98f06c2 Add `WithStateBinding`
This is a way to add back some of the "free" animations that we lose when
creating custom bindings instead of using `@State` variables, which is
extremely common in TCA / unidirectional architecture.

For an example check out the live preview in the `WithStateBinding` file.
The first is with a standard State binding, click to get the detail and then
drag from the leading edge slowly. You will notice the selection highlight _gradually_
gets less the more you drag (or stronger if you go back).

For the second one with a custom binding, drag back and you will notice it is either
entirely selected, or deselected.

The third uses `WithStateBinding` to give _back_ the nice animations to custom bindings.
2021-11-15 23:36:16 +00:00
Daniel Haight 1adf39b933 Drive `HomeView` Navigation state from `ViewStore`
This demonstrates going from a view with no active navigation, to one that is state driven.

It is intended to be representative of the work needed to achieve this.
2021-11-15 23:36:16 +00:00
Daniel Haight e458a491c4 Add `Home` TCA feature
- Add the `State/Action/Reducer` combination to represent a basic TCA feature
- There is a `route` property on the state which represents our navigation state
    (we will use this to drive more navigation state in the next commit)
- The state has a property which is a `TransactionHistoryState`
    we create our new reducer by leaning mostly on the existing one.
- Temporarily we set up a text representation of our state
- Temporarily Use `HomeView` as the app's entry point, to be replaced with an `AppView`
2021-11-15 23:36:16 +00:00
Daniel Haight 9724d22235 Add `NavigationLinks` and `Bindings`
This gives us a more readable approach to set up navigation links
that mirrors other `SwiftUI` navigation paradigms such as `.sheet`.

We use the modifier to simplify navigation link setup for `TransactionHistoryView`

We also include some `Binding` extensions to help creating them.
2021-11-15 23:36:14 +00:00
Daniel Haight 0ce7d14c81 Add `History` TCA feature
This adds a "TCA" feature of a (very) basic transaction history and detail.

It demonstrates a purely state driven navigation stack.
Specifically, a `route: Route?` value is tracked in the state.
This value is driven by the selection of a transaction in the list,
setting it to to `.selectedTransaction(transaction)`,
which then pushes the detail view for that `transaction` onto the `NavigationView`.
Popping the detail view sets the property to `nil`.

Take a look at the previews in `TransactionHistoryView` try them "live" as well.

**N.B** The models are _not_ correct in any way, though are meant to be somewhat representative
and give something to display.
2021-11-15 23:32:54 +00:00
adam 9b46a4c9d3 Onboarding State Updates 2021-11-05 07:27:31 -05:00
adam 16adad59f0 Onboarding Skip 2021-11-04 07:54:30 -05:00
adam c8d3ccf7a3 TCA Updates 2021-10-15 06:15:12 -05:00
adam 0169164472 Onboarding TCA intro 2021-10-13 07:25:17 -05:00