diff options
| author | Henry Jameson <me@hjkos.com> | 2018-12-18 22:43:26 +0300 |
|---|---|---|
| committer | Henry Jameson <me@hjkos.com> | 2018-12-18 22:43:26 +0300 |
| commit | 81c83566cd8a9bf09b568264e289591c52fbca0d (patch) | |
| tree | 327b6e195cb9820213dd838384353beb22e99f6b /src/components/user_profile/user_profile.js | |
| parent | 485a531d57108f8adf57ae5043610ef107b26d3e (diff) | |
| parent | f62ff2d894d87c7e9c200687eb2a91bcb111e7e1 (diff) | |
Merge remote-tracking branch 'upstream/develop' into user-profile-overhault
* upstream/develop: (24 commits)
Feature/bigger icons for mobile / #211
Fix oauth url
Make user profile page cleaner
Redirect to /main/all
Move userProfile link to methods
Fix user profile test
Add temporary redirects
Add local profile test
Implement user_profile.spec.js
Use babel polyfill in karma
Use 'userProfileLink' to generate user-profile link
Rollback disableDotRule
Use "-1" in indexOf
Add generateProfileLink
Use "~" as a route namespace symbol
Disable dot rule
Pass userName instead of userId
Typo in tests
Fix redirect paths
Fix typo
...
Diffstat (limited to 'src/components/user_profile/user_profile.js')
| -rw-r--r-- | src/components/user_profile/user_profile.js | 39 |
1 files changed, 29 insertions, 10 deletions
diff --git a/src/components/user_profile/user_profile.js b/src/components/user_profile/user_profile.js index 8ff0daad..deee77dd 100644 --- a/src/components/user_profile/user_profile.js +++ b/src/components/user_profile/user_profile.js @@ -4,32 +4,40 @@ import Timeline from '../timeline/timeline.vue' const UserProfile = { created () { + debugger this.$store.commit('clearTimeline', { timeline: 'user' }) - this.$store.dispatch('startFetching', ['user', this.userId]) - if (!this.$store.state.users.usersObject[this.userId]) { - this.$store.dispatch('fetchUser', this.userId) + this.$store.dispatch('startFetching', ['user', this.fetchBy]) + if (!this.user) { + this.$store.dispatch('fetchUser', this.fetchBy) } }, destroyed () { this.$store.dispatch('stopFetching', 'user') }, computed: { - timeline () { return this.$store.state.statuses.timelines.user }, - friends () { - return this.user.friends - }, - followers () { - return this.user.followers + timeline () { + return this.$store.state.statuses.timelines.user }, userId () { return this.$route.params.id }, + userName () { + return this.$route.params.name + }, user () { if (this.timeline.statuses[0]) { return this.timeline.statuses[0].user } else { - return this.$store.state.users.usersObject[this.userId] || false + return Object.values(this.$store.state.users.usersObject).filter(user => { + 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' } }, methods: { @@ -43,7 +51,18 @@ const UserProfile = { } }, 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]) |
