aboutsummaryrefslogtreecommitdiff
path: root/src/modules/users.js
diff options
context:
space:
mode:
authorwakarimasen <wakarimasen@airmail.cc>2017-03-08 18:28:41 +0100
committerwakarimasen <wakarimasen@airmail.cc>2017-03-08 18:28:41 +0100
commita6b6fe95c0fe2aa60ebbfca87fde47e629035c49 (patch)
treef1ce15596cef36aa03a0e6f41ee3c2e7f2633acd /src/modules/users.js
parentccbfc64bfcaf5efd598af6987e304291e23def1c (diff)
Show visual feedback on login error, redirect on success
Diffstat (limited to 'src/modules/users.js')
-rw-r--r--src/modules/users.js68
1 files changed, 38 insertions, 30 deletions
diff --git a/src/modules/users.js b/src/modules/users.js
index 31731880..a5274480 100644
--- a/src/modules/users.js
+++ b/src/modules/users.js
@@ -65,40 +65,48 @@ const users = {
})
},
loginUser (store, userCredentials) {
- const commit = store.commit
- commit('beginLogin')
- store.rootState.api.backendInteractor.verifyCredentials(userCredentials)
- .then((response) => {
- if (response.ok) {
- response.json()
- .then((user) => {
- user.credentials = userCredentials
- commit('setCurrentUser', user)
- commit('addNewUsers', [user])
+ return new Promise((resolve, reject) => {
+ const commit = store.commit
+ commit('beginLogin')
+ store.rootState.api.backendInteractor.verifyCredentials(userCredentials)
+ .then((response) => {
+ if (response.ok) {
+ response.json()
+ .then((user) => {
+ user.credentials = userCredentials
+ commit('setCurrentUser', user)
+ commit('addNewUsers', [user])
- // Set our new backend interactor
- commit('setBackendInteractor', backendInteractorService(userCredentials))
+ // Set our new backend interactor
+ commit('setBackendInteractor', backendInteractorService(userCredentials))
- // Start getting fresh tweets.
- store.dispatch('startFetching', 'friends')
+ // Start getting fresh tweets.
+ store.dispatch('startFetching', 'friends')
- // Get user mutes and follower info
- store.rootState.api.backendInteractor.fetchMutes().then((mutedUsers) => {
- each(mutedUsers, (user) => { user.muted = true })
- store.commit('addNewUsers', mutedUsers)
- })
+ // Get user mutes and follower info
+ store.rootState.api.backendInteractor.fetchMutes().then((mutedUsers) => {
+ each(mutedUsers, (user) => { user.muted = true })
+ store.commit('addNewUsers', mutedUsers)
+ })
- // Fetch our friends
- store.rootState.api.backendInteractor.fetchFriends()
- .then((friends) => commit('addNewUsers', friends))
- })
- }
- commit('endLogin')
- })
- .catch((error) => {
- console.log(error)
- commit('endLogin')
- })
+ // Fetch our friends
+ store.rootState.api.backendInteractor.fetchFriends()
+ .then((friends) => commit('addNewUsers', friends))
+ })
+ } else {
+ // Authentication failed
+ commit('endLogin')
+ reject()
+ }
+ commit('endLogin')
+ resolve()
+ })
+ .catch((error) => {
+ console.log(error)
+ commit('endLogin')
+ reject()
+ })
+ })
}
}
}