diff --git a/app/javascript/dashboard/components-next/message/bubbles/Media.vue b/app/javascript/dashboard/components-next/message/bubbles/Media.vue index 51a525597..5d3770ce4 100644 --- a/app/javascript/dashboard/components-next/message/bubbles/Media.vue +++ b/app/javascript/dashboard/components-next/message/bubbles/Media.vue @@ -34,15 +34,36 @@ const attachment = computed(() => { }); const hasError = ref(false); + +const downloadAttachment = async () => { + const response = await fetch(attachment.value.dataUrl); + const blob = await response.blob(); + const url = window.URL.createObjectURL(blob); + const a = document.createElement('a'); + a.href = url; + a.download = `attachment${attachment.value.extension || ''}`; + document.body.appendChild(a); + a.click(); + window.URL.revokeObjectURL(url); + document.body.removeChild(a); +}; diff --git a/app/javascript/dashboard/components-next/message/constants.js b/app/javascript/dashboard/components-next/message/constants.js index e7d5f0976..9291be776 100644 --- a/app/javascript/dashboard/components-next/message/constants.js +++ b/app/javascript/dashboard/components-next/message/constants.js @@ -46,3 +46,10 @@ export const ATTACHMENT_TYPES = { CONTACT: 'contact', IG_REEL: 'ig_reel', }; + +export const MEDIA_TYPES = [ + ATTACHMENT_TYPES.IMAGE, + ATTACHMENT_TYPES.VIDEO, + ATTACHMENT_TYPES.AUDIO, + ATTACHMENT_TYPES.IG_REEL, +];