just a question about the pipeline that I haven't understood yet.
Is the following pipeline the right one?
app.component --> store.select(user).subscribe(loggedUser => { got to home })
app.component --> store.select(loginErrorMessage).subscribe(errorMessage => { show error message })
app.component.login() 
     --> user.service.login(user, password) 
           --> if (login OK) new ActionLogin(loggedUser)
                --> authReducer(state, action ) return {...state, user:action.payload.loggedUser}
           --> else new ActionWrongLogin(errorMessage)
                --> authReducer(state, action ) return {...state, loginErrorMessage:action.payload.errorMessage}
or this one is better:
app.component --> store.select(user).subscribe(loggedUser => { got to home })
app.component --> store.select(loginErrorMessage).subscribe(errorMessage => { show error message })
app.component.login() 
     --> new ActionDoLogin(user, password)
           --> user.service.login(user, password) 
                  --> if (login OK) new ActionLogin(loggedUser)
                        --> authReducer(state, action ) return {...state, user:action.payload.loggedUser}
                  --> else new ActionWrongLogin(errorMessage)
                        --> authReducer(state, action ) return {...state, loginErrorMessage:action.payload.errorMessage}