Before integrating ngrx, it's good to first think about the various aspects of state throughout your app in addition to which module they might pertain to. With our app, here's a reasonable starter list (not meant to be complete or thorough at this point):
- CoreModule:
- user: any; user-related state:
- recentUsername: string; most recently used successful username
- current: any; authenticated user (if there is one)
- user: any; user-related state:
- MixerModule:
- mixer: any: mixer-related state
- compositions: Array<IComposition>; list of user-saved compositions
- activeComposition: CompositionModel; the active composition
- mixer: any: mixer-related state
- PlayerModule:
- player: any; various aspects of player state.
- playing: boolean; whether audio is playing or not.
- duration: ...
- player: any; various aspects of player state.