pleroma-fe/src/components/user_avatar/user_avatar.js

62 lines
1.3 KiB
JavaScript
Raw Normal View History

import StillImage from '../still-image/still-image.vue'
2025-01-30 21:56:07 +02:00
import { useInterfaceStore } from 'src/stores/interface'
import { library } from '@fortawesome/fontawesome-svg-core'
import {
2023-12-27 22:54:44 -05:00
faRobot,
faPeopleGroup
} from '@fortawesome/free-solid-svg-icons'
library.add(
2023-12-27 22:54:44 -05:00
faRobot,
faPeopleGroup
)
const UserAvatar = {
2025-08-05 17:17:01 +03:00
props: {
// User object to show avatar of
user: {
required: true,
type: Object
},
// Use less space and use alternative roundness
compact: {
required: false,
type: Boolean,
default: false
},
// Show small icon indicating if account is a bot or group
showActorTypeIndicator : {
required: false,
type: Boolean,
default: false
},
// Override avatar image URL, useful for profile editing
url: {
required: false,
type: String,
default: null
}
},
data () {
return {
showPlaceholder: false,
defaultAvatar: `${this.$store.state.instance.server + this.$store.state.instance.defaultAvatar}`,
2025-01-30 21:56:07 +02:00
betterShadow: useInterfaceStore().browserSupport.cssFilter
}
},
components: {
StillImage
},
methods: {
imgSrc (src) {
return (!src || this.showPlaceholder) ? this.defaultAvatar : src
},
imageLoadError () {
this.showPlaceholder = true
}
}
}
export default UserAvatar