2019-02-02 14:11:36 -05:00
|
|
|
import StillImage from '../still-image/still-image.vue'
|
2025-01-30 21:56:07 +02:00
|
|
|
import { useInterfaceStore } from 'src/stores/interface'
|
2019-02-02 14:11:36 -05:00
|
|
|
|
2022-03-01 00:35:00 +03:00
|
|
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
|
|
|
|
|
|
|
|
import {
|
2023-12-27 22:54:44 -05:00
|
|
|
faRobot,
|
|
|
|
|
faPeopleGroup
|
2022-03-01 00:35:00 +03:00
|
|
|
} from '@fortawesome/free-solid-svg-icons'
|
|
|
|
|
|
|
|
|
|
library.add(
|
2023-12-27 22:54:44 -05:00
|
|
|
faRobot,
|
|
|
|
|
faPeopleGroup
|
2022-03-01 00:35:00 +03:00
|
|
|
)
|
|
|
|
|
|
2019-02-02 14:11:36 -05:00
|
|
|
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
|
|
|
|
|
}
|
|
|
|
|
},
|
2019-02-02 14:11:36 -05:00
|
|
|
data () {
|
|
|
|
|
return {
|
2020-07-08 10:11:17 +00:00
|
|
|
showPlaceholder: false,
|
2025-01-07 18:37:16 +02:00
|
|
|
defaultAvatar: `${this.$store.state.instance.server + this.$store.state.instance.defaultAvatar}`,
|
2025-01-30 21:56:07 +02:00
|
|
|
betterShadow: useInterfaceStore().browserSupport.cssFilter
|
2019-02-02 14:11:36 -05:00
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
components: {
|
|
|
|
|
StillImage
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
2020-07-08 10:11:17 +00:00
|
|
|
imgSrc (src) {
|
|
|
|
|
return (!src || this.showPlaceholder) ? this.defaultAvatar : src
|
|
|
|
|
},
|
2019-02-02 14:11:36 -05:00
|
|
|
imageLoadError () {
|
|
|
|
|
this.showPlaceholder = true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default UserAvatar
|