From 828b1c78f9304d400a206a25f4f43999bc5908bc Mon Sep 17 00:00:00 2001 From: Maxim Filippov Date: Sat, 15 Dec 2018 06:16:44 +0300 Subject: Implement user_profile.spec.js --- src/components/user_profile/user_profile.js | 30 ++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) (limited to 'src/components/user_profile/user_profile.js') diff --git a/src/components/user_profile/user_profile.js b/src/components/user_profile/user_profile.js index 8a32392a..95d797a2 100644 --- a/src/components/user_profile/user_profile.js +++ b/src/components/user_profile/user_profile.js @@ -3,19 +3,22 @@ import Timeline from '../timeline/timeline.vue' const UserProfile = { created () { + debugger this.$store.commit('clearTimeline', { timeline: 'user' }) - this.$store.dispatch('startFetching', ['user', this.userName]) + this.$store.dispatch('startFetching', ['user', this.fetchBy]) if (!this.user) { - this.$store.dispatch('fetchUser', this.userName) + this.$store.dispatch('fetchUser', this.fetchBy) } }, destroyed () { this.$store.dispatch('stopFetching', 'user') }, computed: { - timeline () { return this.$store.state.statuses.timelines.user }, + timeline () { + return this.$store.state.statuses.timelines.user + }, userId () { - return this.user.id + return this.$route.params.id }, userName () { return this.$route.params.name @@ -25,16 +28,33 @@ const UserProfile = { return this.timeline.statuses[0].user } else { return Object.values(this.$store.state.users.usersObject).filter(user => { - return user.screen_name === this.userName + return (this.isExternal ? user.id === this.userId : user.screen_name === this.userName) })[0] || false } + }, + fetchBy () { + return this.isExternal ? this.userId : this.userName + }, + isExternal () { + return this.$route.name === 'external-user-profile' } }, watch: { userName () { + if (this.isExternal) { + return + } this.$store.dispatch('stopFetching', 'user') this.$store.commit('clearTimeline', { timeline: 'user' }) this.$store.dispatch('startFetching', ['user', this.userName]) + }, + userId () { + if (!this.isExternal) { + return + } + this.$store.dispatch('stopFetching', 'user') + this.$store.commit('clearTimeline', { timeline: 'user' }) + this.$store.dispatch('startFetching', ['user', this.userId]) } }, components: { -- cgit v1.2.3-70-g09d2