From f112e500e17e74cbf102dbcf009dc074ce613f22 Mon Sep 17 00:00:00 2001 From: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Date: Fri, 14 Feb 2025 04:29:35 +0530 Subject: [PATCH] feat: Add the ability to block/unblock contact via contact details page (#10899) --- .../Contacts/ContactsDetailsLayout.vue | 46 +++++++++++++++---- .../dashboard/i18n/locale/en/contact.json | 6 +++ .../contacts/pages/ContactManageView.vue | 31 +++++++++++++ app/models/contact.rb | 4 +- .../api/v1/models/_contact.json.jbuilder | 1 + 5 files changed, 77 insertions(+), 11 deletions(-) diff --git a/app/javascript/dashboard/components-next/Contacts/ContactsDetailsLayout.vue b/app/javascript/dashboard/components-next/Contacts/ContactsDetailsLayout.vue index ad007af1c..57c4ba7c8 100644 --- a/app/javascript/dashboard/components-next/Contacts/ContactsDetailsLayout.vue +++ b/app/javascript/dashboard/components-next/Contacts/ContactsDetailsLayout.vue @@ -8,17 +8,17 @@ import Breadcrumb from 'dashboard/components-next/breadcrumb/Breadcrumb.vue'; import ComposeConversation from 'dashboard/components-next/NewConversation/ComposeConversation.vue'; const props = defineProps({ - buttonLabel: { - type: String, - default: '', - }, selectedContact: { type: Object, default: () => ({}), }, + isUpdating: { + type: Boolean, + default: false, + }, }); -const emit = defineEmits(['goToContactsList']); +const emit = defineEmits(['goToContactsList', 'toggleBlock']); const { t } = useI18n(); const slots = useSlots(); @@ -45,9 +45,17 @@ const breadcrumbItems = computed(() => { return items; }); +const isContactBlocked = computed(() => { + return props.selectedContact?.blocked; +}); + const handleBreadcrumbClick = () => { emit('goToContactsList'); }; + +const toggleBlock = () => { + emit('toggleBlock', isContactBlocked.value); +};