From d93e2ee60ab9c9c738af8fe1d8477610277f4da3 Mon Sep 17 00:00:00 2001 From: Shivam Mishra Date: Wed, 27 Nov 2024 20:05:35 +0530 Subject: [PATCH] feat: add download option TODO: Get better designs --- .../components-next/message/bubbles/Media.vue | 25 +++++++++++++++++-- .../components-next/message/constants.js | 7 ++++++ 2 files changed, 30 insertions(+), 2 deletions(-) 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, +];