summaryrefslogtreecommitdiffstats
path: root/src/components/ContactDetails/ContactDetailsAvatar.vue
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/ContactDetails/ContactDetailsAvatar.vue')
-rw-r--r--src/components/ContactDetails/ContactDetailsAvatar.vue27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/components/ContactDetails/ContactDetailsAvatar.vue b/src/components/ContactDetails/ContactDetailsAvatar.vue
index 1700c8dd..9a1bd3f5 100644
--- a/src/components/ContactDetails/ContactDetailsAvatar.vue
+++ b/src/components/ContactDetails/ContactDetailsAvatar.vue
@@ -32,8 +32,8 @@
@change="processFile">
<!-- Avatar display -->
- <div v-if="contact.photo"
- :style="{ 'backgroundImage': `url(${contact.photoUrl})` }"
+ <div v-if="photoUrl"
+ :style="{ 'backgroundImage': `url(${photoUrl})` }"
class="contact-header-avatar__photo"
@click="toggleModal" />
<Avatar v-else
@@ -136,7 +136,7 @@
<div class="contact-header-modal__photo-wrapper"
@click.exact.self="toggleModal">
<img ref="img"
- :src="contact.photoUrl"
+ :src="photoUrl"
class="contact-header-modal__photo">
</div>
</Modal>
@@ -178,11 +178,18 @@ export default {
},
},
+ watch: {
+ contact() {
+ this.loadPhotoUrl()
+ },
+ },
+
data() {
return {
maximizeAvatar: false,
opened: false,
loading: false,
+ photoUrl: false,
root: generateRemoteUrl(`dav/files/${getCurrentUser().uid}`),
}
},
@@ -210,6 +217,10 @@ export default {
},
},
+ mounted() {
+ this.loadPhotoUrl()
+ },
+
methods: {
onLoad() {
console.debug(...arguments)
@@ -354,6 +365,16 @@ export default {
this.loading = false
},
+ async loadPhotoUrl() {
+ this.photoUrl = false
+ const photoUrl = await this.contact.getPhotoUrl()
+ if (!photoUrl) {
+ console.warn('contact has an invalid photo')
+ return
+ }
+ this.photoUrl = photoUrl
+ },
+
/**
* Toggle the full image preview
*/