Files
vuefilemanager/resources/js/components/FilesView/MemberAvatar.vue
Čarodej 6ef50978d5 fixes
2021-10-26 07:56:57 +02:00

56 lines
1.3 KiB
Vue

<template>
<div>
<img
:style="{width: size + 'px', height: size + 'px'}"
v-if="member.data.attributes.avatar"
:src="member.data.attributes.avatar"
:alt="member.data.attributes.name"
:class="[borderRadius, {'border-3 border-white dark:border-dark-background': isBorder}]"
class=""
>
<div
v-else
class="flex items-center justify-center"
:class="[borderRadius, {'border-3 border-white dark:border-dark-background': isBorder}]"
:style="{width: size + 'px', height: size + 'px', background: member.data.attributes.color ? member.data.attributes.color : '#f4f5f6'}"
>
<span :class="fontSize" class="uppercase font-extrabold text-gray-900">
{{ letter }}
</span>
</div>
</div>
</template>
<script>
export default {
name: 'MemberAvatar',
props: [
'isBorder',
'member',
'size',
],
computed: {
letter() {
let string = this.member.data.attributes.name
? this.member.data.attributes.name
: this.member.data.attributes.email
return string.substr(0, 1)
},
borderRadius() {
return this.size > 32 ? 'rounded-xl' : 'rounded-lg'
},
fontSize() {
if (this.size > 42) {
return 'text-lg'
} else if (this.size > 32) {
return 'text-base'
} else {
return 'text-sm'
}
},
}
}
</script>