diff --git a/src/components/basic_user_card/basic_user_card.vue b/src/components/basic_user_card/basic_user_card.vue index 37f810ed..7cbf647c 100644 --- a/src/components/basic_user_card/basic_user_card.vue +++ b/src/components/basic_user_card/basic_user_card.vue @@ -1,20 +1,25 @@ <template> - <div class="card"> + <div class="user-card"> <router-link :to="userProfileLink(user)"> <UserAvatar class="avatar" :compact="true" @click.prevent.native="toggleUserExpanded" :src="user.profile_image_url"/> </router-link> - <div class="usercard" v-if="userExpanded"> + <div class="user-card-expanded-content" 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-collapsed-content" v-else> + <div class="user-card-primary-area"> + <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> + <router-link class='user-screen-name' :to="userProfileLink(user)"> + @{{user.screen_name}} + </router-link> + </div> </div> - <div class="user-link-action"> - <router-link class='user-screen-name' :to="userProfileLink(user)"> - @{{user.screen_name}} - </router-link> + <div class="user-card-secondary-area"> + <slot name="secondary-area"></slot> </div> </div> </div> @@ -25,35 +30,7 @@ <style lang="scss"> @import '../../_variables.scss'; -.name-and-screen-name { - margin-left: 0.7em; - margin-top:0.0em; - text-align: left; - width: 100%; - .user-name { - display: flex; - justify-content: space-between; - - img { - object-fit: contain; - height: 16px; - width: 16px; - vertical-align: middle; - } - } - - .user-link-action { - display: flex; - align-items: flex-start; - justify-content: space-between; - - button { - margin-top: 3px; - } - } -} - -.card { +.user-card { display: flex; flex: 1 0; padding-top: 0.6em; @@ -65,30 +42,52 @@ border-bottom-color: $fallback--border; border-bottom-color: var(--border, $fallback--border); - .avatar { - padding: 0; - } -} - -.usercard { - width: fill-available; - margin: 0.2em 0 0 0.7em; - border-radius: $fallback--panelRadius; - border-radius: var(--panelRadius, $fallback--panelRadius); - border-style: solid; - border-color: $fallback--border; - border-color: var(--border, $fallback--border); - border-width: 1px; - overflow: hidden; - - .panel-heading { - background: transparent; - flex-direction: column; - align-items: stretch; + &-collapsed-content { + margin-left: 0.7em; + margin-top:0.0em; + text-align: left; + flex: 1; + display: flex; + align-items: flex-start; + justify-content: space-between; } - p { - margin-bottom: 0; + &-primary-area { + flex: 1; + .user-name { + img { + object-fit: contain; + height: 16px; + width: 16px; + vertical-align: middle; + } + } + } + + &-secondary-area { + flex: none; + } + + &-expanded-content { + flex: 1; + margin: 0.2em 0 0 0.7em; + border-radius: $fallback--panelRadius; + border-radius: var(--panelRadius, $fallback--panelRadius); + border-style: solid; + border-color: $fallback--border; + border-color: var(--border, $fallback--border); + border-width: 1px; + overflow: hidden; + + .panel-heading { + background: transparent; + flex-direction: column; + align-items: stretch; + } + + p { + margin-bottom: 0; + } } } </style>