aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortaehoon <th.dev91@gmail.com>2019-02-21 13:32:47 -0500
committertaehoon <th.dev91@gmail.com>2019-02-26 11:08:13 -0500
commite687b58091bcedb6f3a56d94030fa312e51830d5 (patch)
tree9cfb2f39c6ae58520a354f66eb75d5eb14a2ecec /src
parentd5348c13ff542ae77c3c87e381dc54f5e7619acc (diff)
Show error message when visit profile page of invalid user
Diffstat (limited to 'src')
-rw-r--r--src/components/user_profile/user_profile.js8
-rw-r--r--src/components/user_profile/user_profile.vue3
-rw-r--r--src/i18n/en.json3
-rw-r--r--src/modules/users.js2
-rw-r--r--src/services/api/api.service.js6
5 files changed, 19 insertions, 3 deletions
diff --git a/src/components/user_profile/user_profile.js b/src/components/user_profile/user_profile.js
index 37179ce1..44192e9a 100644
--- a/src/components/user_profile/user_profile.js
+++ b/src/components/user_profile/user_profile.js
@@ -4,6 +4,11 @@ import Timeline from '../timeline/timeline.vue'
import FollowList from '../follow_list/follow_list.vue'
const UserProfile = {
+ data () {
+ return {
+ error: false
+ }
+ },
created () {
this.$store.commit('clearTimeline', { timeline: 'user' })
this.$store.commit('clearTimeline', { timeline: 'favorites' })
@@ -13,6 +18,9 @@ const UserProfile = {
this.startFetchFavorites()
if (!this.user.id) {
this.$store.dispatch('fetchUser', this.fetchBy)
+ .catch(() => {
+ this.error = true
+ })
}
},
destroyed () {
diff --git a/src/components/user_profile/user_profile.vue b/src/components/user_profile/user_profile.vue
index 09fb93de..ccebe20b 100644
--- a/src/components/user_profile/user_profile.vue
+++ b/src/components/user_profile/user_profile.vue
@@ -55,7 +55,8 @@
</div>
</div>
<div class="panel-body">
- <i class="icon-spin3 animate-spin"></i>
+ <span v-if="error">{{ $t('user_profile.profile_does_not_exist') }}</span>
+ <i class="icon-spin3 animate-spin" v-else></i>
</div>
</div>
</div>
diff --git a/src/i18n/en.json b/src/i18n/en.json
index 64753f1d..c482ecb6 100644
--- a/src/i18n/en.json
+++ b/src/i18n/en.json
@@ -383,7 +383,8 @@
"mute_progress": "Muting..."
},
"user_profile": {
- "timeline_title": "User Timeline"
+ "timeline_title": "User Timeline",
+ "profile_does_not_exist": "Sorry, this profile does not exist."
},
"who_to_follow": {
"more": "More",
diff --git a/src/modules/users.js b/src/modules/users.js
index 77df7168..eabfe5ae 100644
--- a/src/modules/users.js
+++ b/src/modules/users.js
@@ -140,7 +140,7 @@ const users = {
getters,
actions: {
fetchUser (store, id) {
- store.rootState.api.backendInteractor.fetchUser({ id })
+ return store.rootState.api.backendInteractor.fetchUser({ id })
.then((user) => store.commit('addNewUsers', [user]))
},
fetchBlocks (store) {
diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js
index 3d2e8823..d8716596 100644
--- a/src/services/api/api.service.js
+++ b/src/services/api/api.service.js
@@ -244,6 +244,12 @@ const denyUser = ({id, credentials}) => {
const fetchUser = ({id, credentials}) => {
let url = `${USER_URL}?user_id=${id}`
return fetch(url, { headers: authHeaders(credentials) })
+ .then((data) => {
+ if (!data.ok) {
+ throw Error(data.statusText)
+ }
+ return data
+ })
.then((data) => data.json())
.then((data) => parseUser(data))
}