Update BasicUserCard template and add a slot for customization

This commit is contained in:
taehoon 2019-02-13 14:31:02 -05:00
parent 94e6de11b7
commit 5d6e1864a5

View file

@ -1,22 +1,27 @@
<template> <template>
<div class="card"> <div class="user-card">
<router-link :to="userProfileLink(user)"> <router-link :to="userProfileLink(user)">
<UserAvatar class="avatar" :compact="true" @click.prevent.native="toggleUserExpanded" :src="user.profile_image_url"/> <UserAvatar class="avatar" :compact="true" @click.prevent.native="toggleUserExpanded" :src="user.profile_image_url"/>
</router-link> </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> <user-card-content :user="user" :switcher="false"></user-card-content>
</div> </div>
<div class="name-and-screen-name" v-else> <div class="user-card-collapsed-content" v-else>
<div class="user-card-primary-area">
<div :title="user.name" class="user-name"> <div :title="user.name" class="user-name">
<span v-if="user.name_html" v-html="user.name_html"></span> <span v-if="user.name_html" v-html="user.name_html"></span>
<span v-else>{{ user.name }}</span> <span v-else>{{ user.name }}</span>
</div> </div>
<div class="user-link-action"> <div>
<router-link class='user-screen-name' :to="userProfileLink(user)"> <router-link class='user-screen-name' :to="userProfileLink(user)">
@{{user.screen_name}} @{{user.screen_name}}
</router-link> </router-link>
</div> </div>
</div> </div>
<div class="user-card-secondary-area">
<slot name="secondary-area"></slot>
</div>
</div>
</div> </div>
</template> </template>
@ -25,35 +30,7 @@
<style lang="scss"> <style lang="scss">
@import '../../_variables.scss'; @import '../../_variables.scss';
.name-and-screen-name { .user-card {
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 {
display: flex; display: flex;
flex: 1 0; flex: 1 0;
padding-top: 0.6em; padding-top: 0.6em;
@ -65,13 +42,34 @@
border-bottom-color: $fallback--border; border-bottom-color: $fallback--border;
border-bottom-color: var(--border, $fallback--border); border-bottom-color: var(--border, $fallback--border);
.avatar { &-collapsed-content {
padding: 0; margin-left: 0.7em;
margin-top:0.0em;
text-align: left;
flex: 1;
display: flex;
align-items: flex-start;
justify-content: space-between;
}
&-primary-area {
flex: 1;
.user-name {
img {
object-fit: contain;
height: 16px;
width: 16px;
vertical-align: middle;
}
} }
} }
.usercard { &-secondary-area {
width: fill-available; flex: none;
}
&-expanded-content {
flex: 1;
margin: 0.2em 0 0 0.7em; margin: 0.2em 0 0 0.7em;
border-radius: $fallback--panelRadius; border-radius: $fallback--panelRadius;
border-radius: var(--panelRadius, $fallback--panelRadius); border-radius: var(--panelRadius, $fallback--panelRadius);
@ -91,4 +89,5 @@
margin-bottom: 0; margin-bottom: 0;
} }
} }
}
</style> </style>