From 9d48f5c73774007d23e5fd4cb2e36a287a8cb115 Mon Sep 17 00:00:00 2001 From: Shivam Mishra Date: Wed, 25 Dec 2024 19:42:40 +0530 Subject: [PATCH] feat: allow toggle bg --- .../components-next/message/Message.vue | 16 +++++++++++++++ .../message/bubbles/Email/Index.vue | 20 ++++++++++++++++--- .../i18n/locale/en/conversation.json | 1 + .../components/MessageContextMenu.vue | 14 ++++++++++++- app/javascript/shared/constants/busEvents.js | 1 + 5 files changed, 48 insertions(+), 4 deletions(-) diff --git a/app/javascript/dashboard/components-next/message/Message.vue b/app/javascript/dashboard/components-next/message/Message.vue index 1952e9327..c360bcc6d 100644 --- a/app/javascript/dashboard/components-next/message/Message.vue +++ b/app/javascript/dashboard/components-next/message/Message.vue @@ -318,6 +318,7 @@ const contextMenuEnabledOptions = computed(() => { delete: hasText || hasAttachments, cannedResponse: isOutgoing && hasText, replyTo: !props.private && props.inboxSupportsReplyTo.outgoing, + toggleBg: variant.value === MESSAGE_VARIANTS.EMAIL, }; }); @@ -353,6 +354,20 @@ function handleReplyTo() { emitter.emit(BUS_EVENTS.TOGGLE_REPLY_TO_MESSAGE, props); } +function toggleBg() { + const key = `bg-light-toggle::${props.id}`; + const isToggled = LocalStorage.get(key); + + if (isToggled) { + LocalStorage.remove(key); + } else { + LocalStorage.set(`bg-light-toggle::${props.id}`, true); + } + + emitter.emit(BUS_EVENTS.TOGGLE_MESSAGE_BG, props.id); + closeContextMenu(); +} + provideMessageContext({ ...toRefs(props), isPrivate: computed(() => props.private), @@ -425,6 +440,7 @@ provideMessageContext({ @open="openContextMenu" @close="closeContextMenu" @reply-to="handleReplyTo" + @toggle-bg="toggleBg" /> diff --git a/app/javascript/dashboard/components-next/message/bubbles/Email/Index.vue b/app/javascript/dashboard/components-next/message/bubbles/Email/Index.vue index dccf9ca1d..e50443eb7 100644 --- a/app/javascript/dashboard/components-next/message/bubbles/Email/Index.vue +++ b/app/javascript/dashboard/components-next/message/bubbles/Email/Index.vue @@ -1,6 +1,9 @@