From 8f255fbad4ee80718da6b2154c410995561729de Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Mon, 17 Dec 2018 19:14:38 +0300 Subject: Refactor follower/friends out of statuses/timeline into user_profile where it belongs. Changed display of profile to single panel with tabs. --- src/components/user_profile/user_profile.js | 24 ++++++++++ src/components/user_profile/user_profile.vue | 66 +++++++++++++++++++++++----- 2 files changed, 78 insertions(+), 12 deletions(-) (limited to 'src/components/user_profile') diff --git a/src/components/user_profile/user_profile.js b/src/components/user_profile/user_profile.js index 1d79713d..8ff0daad 100644 --- a/src/components/user_profile/user_profile.js +++ b/src/components/user_profile/user_profile.js @@ -1,4 +1,5 @@ import UserCardContent from '../user_card_content/user_card_content.vue' +import UserCard from '../user_card/user_card.vue' import Timeline from '../timeline/timeline.vue' const UserProfile = { @@ -14,6 +15,12 @@ const UserProfile = { }, computed: { timeline () { return this.$store.state.statuses.timelines.user }, + friends () { + return this.user.friends + }, + followers () { + return this.user.followers + }, userId () { return this.$route.params.id }, @@ -25,15 +32,32 @@ const UserProfile = { } } }, + methods: { + fetchFollowers () { + const id = this.userId + this.$store.dispatch('addFollowers', { id }) + }, + fetchFriends () { + const id = this.userId + this.$store.dispatch('addFriends', { id }) + } + }, watch: { userId () { this.$store.dispatch('stopFetching', 'user') this.$store.commit('clearTimeline', { timeline: 'user' }) this.$store.dispatch('startFetching', ['user', this.userId]) + }, + user () { + if (!this.user.followers) { + this.fetchFollowers() + this.fetchFriends() + } } }, components: { UserCardContent, + UserCard, Timeline } } diff --git a/src/components/user_profile/user_profile.vue b/src/components/user_profile/user_profile.vue index 4d2853a6..319c9850 100644 --- a/src/components/user_profile/user_profile.vue +++ b/src/components/user_profile/user_profile.vue @@ -1,20 +1,38 @@ @@ -24,12 +42,36 @@ .user-profile { flex: 2; flex-basis: 500px; - padding-bottom: 10px; + .panel-heading { background: transparent; flex-direction: column; align-items: stretch; } + .userlist-placeholder { + display: flex; + justify-content: center; + align-items: middle; + padding: 2em; + } + + .timeline-heading { + display: flex; + justify-content: center; + + .loadmore-button, .alert { + flex: 1; + } + + .loadmore-button { + height: 28px; + margin: 10px .6em; + } + + .title, .loadmore-text { + display: none + } + } } .user-profile-placeholder { .panel-body { -- cgit v1.2.3-70-g09d2 From 56fdbf18c534182bbe996954c4e76167cf825b0c Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Mon, 17 Dec 2018 19:21:05 +0300 Subject: missing string and unification with counters (order) --- src/components/user_profile/user_profile.vue | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src/components/user_profile') diff --git a/src/components/user_profile/user_profile.vue b/src/components/user_profile/user_profile.vue index 319c9850..5c823b3d 100644 --- a/src/components/user_profile/user_profile.vue +++ b/src/components/user_profile/user_profile.vue @@ -3,18 +3,18 @@