From 9f3f1ee7cb139a8fbea8c75fc6a85cc5476a51df Mon Sep 17 00:00:00 2001 From: Edijs <iamedijs@hotmail.com> Date: Mon, 11 Feb 2019 11:03:01 -0700 Subject: [PATCH 1/4] Fix UI of followers list --- src/components/status/status.vue | 1 - src/components/user_card/user_card.vue | 100 ++++++++++-------- .../user_card_content/user_card_content.vue | 2 - 3 files changed, 58 insertions(+), 45 deletions(-) diff --git a/src/components/status/status.vue b/src/components/status/status.vue index 76daf73a..5c3fe596 100644 --- a/src/components/status/status.vue +++ b/src/components/status/status.vue @@ -552,7 +552,6 @@ a.unmute { .timeline > { .status-el:last-child { - border-bottom-radius: 0 0 $fallback--panelRadius $fallback--panelRadius;; border-radius: 0 0 var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius); border-bottom: none; } diff --git a/src/components/user_card/user_card.vue b/src/components/user_card/user_card.vue index 12960c02..99eecf7c 100644 --- a/src/components/user_card/user_card.vue +++ b/src/components/user_card/user_card.vue @@ -10,41 +10,43 @@ <div :title="user.name" class="user-name"> <span v-if="user.name_html" v-html="user.name_html"></span> <span v-else>{{ user.name }}</span> - <span class="follows-you" v-if="!userExpanded && showFollows && user.follows_you"> - {{ currentUser.id == user.id ? $t('user_card.its_you') : $t('user_card.follows_you') }} - </span> </div> <div class="user-link-action"> <router-link class='user-screen-name' :to="userProfileLink(user)"> @{{user.screen_name}} </router-link> - <button - v-if="showFollow" - class="btn btn-default" - @click="followUser" - :disabled="followRequestInProgress" - :title="followRequestSent ? $t('user_card.follow_again') : ''" - > - <template v-if="followRequestInProgress"> - {{ $t('user_card.follow_progress') }} - </template> - <template v-else-if="followRequestSent"> - {{ $t('user_card.follow_sent') }} - </template> - <template v-else> - {{ $t('user_card.follow') }} - </template> - </button> - <button v-if="showActions && showFollows && following" class="btn btn-default" @click="unfollowUser" :disabled="followRequestInProgress"> - <template v-if="followRequestInProgress"> - {{ $t('user_card.follow_progress') }} - </template> - <template v-else> - {{ $t('user_card.follow_unfollow') }} - </template> - </button> </div> </div> + <div class="follow-box"> + <span class="follows-you" v-if="showFollows && user.follows_you"> + {{ currentUser.id == user.id ? $t('user_card.its_you') : $t('user_card.follows_you') }} + </span> + <button + v-if="showFollow" + class="btn btn-default" + @click="followUser" + :disabled="followRequestInProgress" + :title="followRequestSent ? $t('user_card.follow_again') : ''" + > + <template v-if="followRequestInProgress"> + {{ $t('user_card.follow_progress') }} + </template> + <template v-else-if="followRequestSent"> + {{ $t('user_card.follow_sent') }} + </template> + <template v-else> + {{ $t('user_card.follow') }} + </template> + </button> + <button v-if="showActions && following" class="btn btn-default" @click="unfollowUser" :disabled="followRequestInProgress"> + <template v-if="followRequestInProgress"> + {{ $t('user_card.follow_progress') }} + </template> + <template v-else> + {{ $t('user_card.follow_unfollow') }} + </template> + </button> + </div> <div class="approval" v-if="showApproval"> <button class="btn btn-default" @click="approveUser">{{ $t('user_card.approve') }}</button> <button class="btn btn-default" @click="denyUser">{{ $t('user_card.deny') }}</button> @@ -56,16 +58,13 @@ <style lang="scss"> @import '../../_variables.scss'; - .name-and-screen-name { margin-left: 0.7em; - margin-top:0.0em; + margin-top: 0.0em; text-align: left; width: 100%; - .user-name { - display: flex; - justify-content: space-between; + .user-name { img { object-fit: contain; height: 16px; @@ -73,21 +72,14 @@ vertical-align: middle; } } - + .user-link-action { display: flex; align-items: flex-start; justify-content: space-between; - - button { - margin-top: 3px; - } } } -.follows-you { - margin-left: 2em; -} .card { display: flex; @@ -99,11 +91,35 @@ border-bottom: 1px solid; margin: 0; border-bottom-color: $fallback--border; - border-bottom-color: var(--border, $fallback--border); + border-bottom-color: var(--border, $fallback--border); .avatar { padding: 0; } + + .avatar.still-image.avatar-compact { + width: 48px; + height: 48px; + } + + .follow-box { + width: 15em; + text-align: center; + position: relative; + + .follows-you { + color: $fallback--link; + color: var(--link, $fallback--link); + } + + button { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + padding: 3px; + } + } } .usercard { diff --git a/src/components/user_card_content/user_card_content.vue b/src/components/user_card_content/user_card_content.vue index 7f9909c4..4d1950c5 100644 --- a/src/components/user_card_content/user_card_content.vue +++ b/src/components/user_card_content/user_card_content.vue @@ -386,6 +386,4 @@ } } -.floater { -} </style> From dd1b25600564e3047dc3355aaa0e88c6b8814ddd Mon Sep 17 00:00:00 2001 From: Edijs <iamedijs@hotmail.com> Date: Mon, 11 Feb 2019 11:08:25 -0700 Subject: [PATCH 2/4] Fix typo --- src/components/status/status.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/status/status.vue b/src/components/status/status.vue index 5c3fe596..7b914291 100644 --- a/src/components/status/status.vue +++ b/src/components/status/status.vue @@ -552,6 +552,7 @@ a.unmute { .timeline > { .status-el:last-child { + border-bottom: 0 0 $fallback--panelRadius $fallback--panelRadius; border-radius: 0 0 var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius); border-bottom: none; } From 5d0e51cae33b29c65cb89c01c087af71b4885b6a Mon Sep 17 00:00:00 2001 From: Edijs <iamedijs@hotmail.com> Date: Tue, 12 Feb 2019 09:00:09 -0700 Subject: [PATCH 3/4] Fix styling --- src/App.scss | 4 ++++ src/components/status/status.vue | 2 +- src/components/user_card/user_card.vue | 17 +++-------------- 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/src/App.scss b/src/App.scss index 1eaed6ea..a43b84a7 100644 --- a/src/App.scss +++ b/src/App.scss @@ -733,3 +733,7 @@ nav { width: 100%; } } + +.btn.btn-default { + min-height: 28px; +} diff --git a/src/components/status/status.vue b/src/components/status/status.vue index 7b914291..ef4ee843 100644 --- a/src/components/status/status.vue +++ b/src/components/status/status.vue @@ -552,7 +552,7 @@ a.unmute { .timeline > { .status-el:last-child { - border-bottom: 0 0 $fallback--panelRadius $fallback--panelRadius; + border-radius: 0 0 $fallback--panelRadius $fallback--panelRadius; border-radius: 0 0 var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius); border-bottom: none; } diff --git a/src/components/user_card/user_card.vue b/src/components/user_card/user_card.vue index 99eecf7c..1fab2323 100644 --- a/src/components/user_card/user_card.vue +++ b/src/components/user_card/user_card.vue @@ -1,7 +1,7 @@ <template> <div class="card"> <router-link :to="userProfileLink(user)"> - <UserAvatar class="avatar" :compact="true" @click.prevent.native="toggleUserExpanded" :src="user.profile_image_url"/> + <UserAvatar class="avatar" @click.prevent.native="toggleUserExpanded" :src="user.profile_image_url"/> </router-link> <div class="usercard" v-if="userExpanded"> <user-card-content :user="user" :switcher="false"></user-card-content> @@ -18,7 +18,7 @@ </div> </div> <div class="follow-box"> - <span class="follows-you" v-if="showFollows && user.follows_you"> + <span class="faint" v-if="showFollows && user.follows_you"> {{ currentUser.id == user.id ? $t('user_card.its_you') : $t('user_card.follows_you') }} </span> <button @@ -97,27 +97,16 @@ padding: 0; } - .avatar.still-image.avatar-compact { - width: 48px; - height: 48px; - } - .follow-box { width: 15em; text-align: center; position: relative; - .follows-you { - color: $fallback--link; - color: var(--link, $fallback--link); - } - - button { + .btn { position: absolute; bottom: 0; left: 0; width: 100%; - padding: 3px; } } } From e801d78e9d923df1263eb9dc78db8fdfa8637734 Mon Sep 17 00:00:00 2001 From: shpuld <shp@cock.li> Date: Sun, 17 Feb 2019 18:54:22 +0200 Subject: [PATCH 4/4] Take over branch and fix some issues --- src/components/follow_list/follow_list.js | 4 +- src/components/follow_list/follow_list.vue | 3 +- src/components/user_card/user_card.js | 7 +- src/components/user_card/user_card.vue | 129 ++++++++++++--------- src/i18n/en.json | 2 +- 5 files changed, 81 insertions(+), 64 deletions(-) diff --git a/src/components/follow_list/follow_list.js b/src/components/follow_list/follow_list.js index acdb216d..51327e2f 100644 --- a/src/components/follow_list/follow_list.js +++ b/src/components/follow_list/follow_list.js @@ -26,7 +26,9 @@ const FollowList = { entries () { return this.showFollowers ? this.user.followers : this.user.friends }, - showActions () { return this.$store.state.users.currentUser.id === this.userId } + showFollowsYou () { + return !this.showFollowers || (this.showFollowers && this.userId !== this.$store.state.users.currentUser.id) + } }, methods: { fetchEntries () { diff --git a/src/components/follow_list/follow_list.vue b/src/components/follow_list/follow_list.vue index 7be2e7b7..27102edf 100644 --- a/src/components/follow_list/follow_list.vue +++ b/src/components/follow_list/follow_list.vue @@ -3,8 +3,7 @@ <user-card v-for="entry in entries" :key="entry.id" :user="entry" - :showFollows="!showFollowers" - :showActions="showActions" + :noFollowsYou="!showFollowsYou" /> <div class="text-center panel-footer"> <a v-if="error" @click="fetchEntries" class="alert error"> diff --git a/src/components/user_card/user_card.js b/src/components/user_card/user_card.js index a4c84716..28e22f09 100644 --- a/src/components/user_card/user_card.js +++ b/src/components/user_card/user_card.js @@ -6,9 +6,8 @@ import { requestFollow, requestUnfollow } from '../../services/follow_manipulate const UserCard = { props: [ 'user', - 'showFollows', - 'showApproval', - 'showActions' + 'noFollowsYou', + 'showApproval' ], data () { return { @@ -26,7 +25,7 @@ const UserCard = { currentUser () { return this.$store.state.users.currentUser }, following () { return this.updated ? this.updated.following : this.user.following }, showFollow () { - return this.showActions && (!this.showFollows && !this.following || this.updated && !this.updated.following) + return !this.showApproval && (!this.following || this.updated && !this.updated.following) } }, methods: { diff --git a/src/components/user_card/user_card.vue b/src/components/user_card/user_card.vue index 1fab2323..ce4edb3c 100644 --- a/src/components/user_card/user_card.vue +++ b/src/components/user_card/user_card.vue @@ -3,53 +3,55 @@ <router-link :to="userProfileLink(user)"> <UserAvatar class="avatar" @click.prevent.native="toggleUserExpanded" :src="user.profile_image_url"/> </router-link> - <div class="usercard" v-if="userExpanded"> - <user-card-content :user="user" :switcher="false"></user-card-content> - </div> - <div class="name-and-screen-name" v-else> - <div :title="user.name" class="user-name"> - <span v-if="user.name_html" v-html="user.name_html"></span> - <span v-else>{{ user.name }}</span> + <div class="user-card-main-content"> + <div class="usercard" v-if="userExpanded"> + <user-card-content :user="user" :switcher="false"></user-card-content> </div> - <div class="user-link-action"> - <router-link class='user-screen-name' :to="userProfileLink(user)"> - @{{user.screen_name}} - </router-link> + <div class="name-and-screen-name" v-if="!userExpanded"> + <div :title="user.name" class="user-name"> + <span v-if="user.name_html" v-html="user.name_html"></span> + <span v-else>{{ user.name }}</span> + </div> + <div class="user-link-action"> + <router-link class='user-screen-name' :to="userProfileLink(user)"> + @{{user.screen_name}} + </router-link> + </div> + </div> + <div class="follow-box" v-if="!userExpanded"> + <span class="faint" v-if="!noFollowsYou && user.follows_you"> + {{ currentUser.id == user.id ? $t('user_card.its_you') : $t('user_card.follows_you') }} + </span> + <button + v-if="showFollow" + class="btn btn-default" + @click="followUser" + :disabled="followRequestInProgress" + :title="followRequestSent ? $t('user_card.follow_again') : ''" + > + <template v-if="followRequestInProgress"> + {{ $t('user_card.follow_progress') }} + </template> + <template v-else-if="followRequestSent"> + {{ $t('user_card.follow_sent') }} + </template> + <template v-else> + {{ $t('user_card.follow') }} + </template> + </button> + <button v-if="following" class="btn btn-default pressed" @click="unfollowUser" :disabled="followRequestInProgress"> + <template v-if="followRequestInProgress"> + {{ $t('user_card.follow_progress') }} + </template> + <template v-else> + {{ $t('user_card.follow_unfollow') }} + </template> + </button> + </div> + <div class="approval" v-if="showApproval"> + <button class="btn btn-default" @click="approveUser">{{ $t('user_card.approve') }}</button> + <button class="btn btn-default" @click="denyUser">{{ $t('user_card.deny') }}</button> </div> - </div> - <div class="follow-box"> - <span class="faint" v-if="showFollows && user.follows_you"> - {{ currentUser.id == user.id ? $t('user_card.its_you') : $t('user_card.follows_you') }} - </span> - <button - v-if="showFollow" - class="btn btn-default" - @click="followUser" - :disabled="followRequestInProgress" - :title="followRequestSent ? $t('user_card.follow_again') : ''" - > - <template v-if="followRequestInProgress"> - {{ $t('user_card.follow_progress') }} - </template> - <template v-else-if="followRequestSent"> - {{ $t('user_card.follow_sent') }} - </template> - <template v-else> - {{ $t('user_card.follow') }} - </template> - </button> - <button v-if="showActions && following" class="btn btn-default" @click="unfollowUser" :disabled="followRequestInProgress"> - <template v-if="followRequestInProgress"> - {{ $t('user_card.follow_progress') }} - </template> - <template v-else> - {{ $t('user_card.follow_unfollow') }} - </template> - </button> - </div> - <div class="approval" v-if="showApproval"> - <button class="btn btn-default" @click="approveUser">{{ $t('user_card.approve') }}</button> - <button class="btn btn-default" @click="denyUser">{{ $t('user_card.deny') }}</button> </div> </div> </template> @@ -58,9 +60,16 @@ <style lang="scss"> @import '../../_variables.scss'; -.name-and-screen-name { + +.user-card-main-content { + display: flex; + flex-direction: column; + flex: 1 1 100%; margin-left: 0.7em; - margin-top: 0.0em; + min-width: 0; +} + +.name-and-screen-name { text-align: left; width: 100%; @@ -98,22 +107,24 @@ } .follow-box { - width: 15em; text-align: center; - position: relative; + flex-shrink: 0; + display: flex; + flex-direction: row; + justify-content: space-between; + flex-wrap: wrap; + line-height: 1.5em; .btn { - position: absolute; - bottom: 0; - left: 0; - width: 100%; + margin-top: 0.5em; + margin-left: auto; + width: 10em; } } } .usercard { width: fill-available; - margin: 0.2em 0 0 0.7em; border-radius: $fallback--panelRadius; border-radius: var(--panelRadius, $fallback--panelRadius); border-style: solid; @@ -134,9 +145,15 @@ } .approval { + display: flex; + flex-direction: row; + flex-wrap: wrap; button { - width: 100%; - margin-bottom: 0.5em; + margin-top: 0.5em; + margin-right: 0.5em; + flex: 1 1; + max-width: 12em; + min-width: 8em; } } </style> diff --git a/src/i18n/en.json b/src/i18n/en.json index c664fbfa..eba90b50 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -344,7 +344,7 @@ "follow_sent": "Request sent!", "follow_progress": "Requesting…", "follow_again": "Send request again?", - "follow_unfollow": "Stop following", + "follow_unfollow": "Unfollow", "followees": "Following", "followers": "Followers", "following": "Following!",