Show error message when visit profile page of invalid user

This commit is contained in:
taehoon 2019-02-21 13:32:47 -05:00
parent d5348c13ff
commit e687b58091
5 changed files with 19 additions and 3 deletions

View file

@ -4,6 +4,11 @@ import Timeline from '../timeline/timeline.vue'
import FollowList from '../follow_list/follow_list.vue' import FollowList from '../follow_list/follow_list.vue'
const UserProfile = { const UserProfile = {
data () {
return {
error: false
}
},
created () { created () {
this.$store.commit('clearTimeline', { timeline: 'user' }) this.$store.commit('clearTimeline', { timeline: 'user' })
this.$store.commit('clearTimeline', { timeline: 'favorites' }) this.$store.commit('clearTimeline', { timeline: 'favorites' })
@ -13,6 +18,9 @@ const UserProfile = {
this.startFetchFavorites() this.startFetchFavorites()
if (!this.user.id) { if (!this.user.id) {
this.$store.dispatch('fetchUser', this.fetchBy) this.$store.dispatch('fetchUser', this.fetchBy)
.catch(() => {
this.error = true
})
} }
}, },
destroyed () { destroyed () {

View file

@ -55,7 +55,8 @@
</div> </div>
</div> </div>
<div class="panel-body"> <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> </div>
</div> </div>

View file

@ -383,7 +383,8 @@
"mute_progress": "Muting..." "mute_progress": "Muting..."
}, },
"user_profile": { "user_profile": {
"timeline_title": "User Timeline" "timeline_title": "User Timeline",
"profile_does_not_exist": "Sorry, this profile does not exist."
}, },
"who_to_follow": { "who_to_follow": {
"more": "More", "more": "More",

View file

@ -140,7 +140,7 @@ const users = {
getters, getters,
actions: { actions: {
fetchUser (store, id) { fetchUser (store, id) {
store.rootState.api.backendInteractor.fetchUser({ id }) return store.rootState.api.backendInteractor.fetchUser({ id })
.then((user) => store.commit('addNewUsers', [user])) .then((user) => store.commit('addNewUsers', [user]))
}, },
fetchBlocks (store) { fetchBlocks (store) {

View file

@ -244,6 +244,12 @@ const denyUser = ({id, credentials}) => {
const fetchUser = ({id, credentials}) => { const fetchUser = ({id, credentials}) => {
let url = `${USER_URL}?user_id=${id}` let url = `${USER_URL}?user_id=${id}`
return fetch(url, { headers: authHeaders(credentials) }) return fetch(url, { headers: authHeaders(credentials) })
.then((data) => {
if (!data.ok) {
throw Error(data.statusText)
}
return data
})
.then((data) => data.json()) .then((data) => data.json())
.then((data) => parseUser(data)) .then((data) => parseUser(data))
} }