- Consistency between our react apps.
- Provide a quick starting point for anyone (community included), to get going with
a SAFE App.
- Work towards some best practice for community recommendations.
The email app features quite a clean 'initialiser' (let's favor British spelling), which could be a great starting point for redux apps.
It manages the app state and facilitates simple authentication of an app, as well as providing actions for connect/reconnecting and setting up a basic app 'config'.
(This last part isn't as crucial perhaps, but I would say is general enough that most apps would be making use of it).
We need to do a few things:
1) Abstract a simpler/clean generic initialiser. This means, move any email app specific functionality into another reducer.
2) Similarly abstract a set of actions that correspond to the new reducer(s).
3) Setup an initialiser specific `safe_comms.js` and email specific functionality.
Once we have this in place, working with the email app, we can look to setup this same functionality in the web hosting app. Augmenting if we find any patterns missing.\
As this should serve as an example for the community, once we have the initial abstraction, I'd suggest we make a 'js-helpers' folder in the example app repo, which we can then pull in to use in both projects (as well as providing a clean place to add some documentation too).
Using redux-teskit (a really good guide can be found here: https://hackernoon.com/redux-testing-step-by-step-a-simple-methodology-for-testing-business-logic-8901670756ce), we should setup a basic set of test for this functionality.