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!",