Valentyne Stigloher 7ce1bb0e83 (ts) convert a lot to TypeScript
Co-authored-by: Sky <msurvival65@gmail.com>
Co-authored-by: tecc <tecc@tecc.me>
2024-02-23 17:48:16 +01:00

41 lines
987 B
Vue

<template>
<span>
<img
:src="src || user.avatar || (user.avatarSource === 'gravatar' ? gravatar(user, size) : fallbackAvatar(user, size))"
alt=""
class="rounded-circle"
:style="`width: ${dsize};height: ${dsize};`"
@error="failedToLoad = true"
>
<small v-if="validate && failedToLoad" class="failed-to-load small text-danger"><T>user.avatar.failed</T></small>
</span>
</template>
<script>
import { fallbackAvatar, gravatar } from '../src/helpers.ts';
export default {
props: {
user: { required: true },
src: {},
size: { default: 128 },
dsize: { default: '6rem' },
validate: { type: Boolean },
},
data() {
return {
fallbackAvatar,
gravatar,
failedToLoad: false,
};
},
};
</script>
<style lang="scss" scoped>
.failed-to-load {
max-width: 200px;
display: inline-block;
}
</style>