Update to #62 and closes #71 . All components that need to check when a user exists on the device can now do so by checking the Redux store.
Upon mounting the EventsMap component, checkForUserLogin attempts to fetch user info from async storage on the device and makes sure it's valid, then saves the user token in the Redux store with saveUserToken.
In ReporterLoginForm, a login is attempted (upon success, authServices.login saves the returned user info to the async store); if the login is successful and saved to the async store, the user info will be saved to the Redux store.
In SettingsPage, after logout (which deletes user info from async storage), deleteUserToken() is called to remove user info from the Redux store.
In ChangePassword, a login is attempted with user info fetched from async storage using checkForUserLogin. If the login is successful, the user's password is updated, and another login is attempted. If that works, then the user token is saved to the Redux store.
Update to #62 and closes #71 . All components that need to check when a user exists on the device can now do so by checking the Redux store.