From e05f02458176c73bac0a223fd1c7fe55ef3f5492 Mon Sep 17 00:00:00 2001 From: Muhsin Date: Tue, 2 Dec 2025 15:19:30 +0530 Subject: [PATCH] feat: add conversation attribute item component --- .../ConversationRequiredEmpty.vue | 11 +++++ .../ConversationRequiredAttributeItem.vue | 40 +++++++++++++++++++ .../ConversationRequiredAttributes.vue | 32 ++++++++++++++- .../dashboard/i18n/locale/en/settings.json | 1 + 4 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 app/javascript/dashboard/components-next/Conversation/ConversationRequiredEmpty.vue create mode 100644 app/javascript/dashboard/components-next/ConversationWorkflow/ConversationRequiredAttributeItem.vue diff --git a/app/javascript/dashboard/components-next/Conversation/ConversationRequiredEmpty.vue b/app/javascript/dashboard/components-next/Conversation/ConversationRequiredEmpty.vue new file mode 100644 index 000000000..45e908609 --- /dev/null +++ b/app/javascript/dashboard/components-next/Conversation/ConversationRequiredEmpty.vue @@ -0,0 +1,11 @@ + diff --git a/app/javascript/dashboard/components-next/ConversationWorkflow/ConversationRequiredAttributeItem.vue b/app/javascript/dashboard/components-next/ConversationWorkflow/ConversationRequiredAttributeItem.vue new file mode 100644 index 000000000..a5a701643 --- /dev/null +++ b/app/javascript/dashboard/components-next/ConversationWorkflow/ConversationRequiredAttributeItem.vue @@ -0,0 +1,40 @@ + + + diff --git a/app/javascript/dashboard/components-next/ConversationWorkflow/ConversationRequiredAttributes.vue b/app/javascript/dashboard/components-next/ConversationWorkflow/ConversationRequiredAttributes.vue index c25081d78..3e9077f58 100644 --- a/app/javascript/dashboard/components-next/ConversationWorkflow/ConversationRequiredAttributes.vue +++ b/app/javascript/dashboard/components-next/ConversationWorkflow/ConversationRequiredAttributes.vue @@ -3,6 +3,8 @@ import { ref } from 'vue'; import Button from 'dashboard/components-next/button/Button.vue'; import CardLayout from 'dashboard/components-next/CardLayout.vue'; import DropdownMenu from 'dashboard/components-next/dropdown-menu/DropdownMenu.vue'; +import ConversationRequiredAttributeItem from 'dashboard/components-next/ConversationWorkflow/ConversationRequiredAttributeItem.vue'; +import ConversationRequiredEmpty from 'dashboard/components-next/Conversation/ConversationRequiredEmpty.vue'; defineProps({ title: { type: String, default: '' }, @@ -17,11 +19,21 @@ const handleClick = () => { emit('click'); }; +const conversationRequiredAttributes = [ + { + action: 'add', + value: 'installation_type', + label: 'Installation Type', + type: 'Text', + }, +]; + const attributeOptions = [ { action: 'add', value: 'installation_type', label: 'Installation Type', + type: 'Text', }, { action: 'add', @@ -62,11 +74,16 @@ const handleAttributeAction = () => { const closeDropdown = () => { showDropdown.value = false; }; + +const handleDelete = () => {}; diff --git a/app/javascript/dashboard/i18n/locale/en/settings.json b/app/javascript/dashboard/i18n/locale/en/settings.json index e361fee0b..0f64267fa 100644 --- a/app/javascript/dashboard/i18n/locale/en/settings.json +++ b/app/javascript/dashboard/i18n/locale/en/settings.json @@ -492,6 +492,7 @@ "REQUIRED_ATTRIBUTES": { "TITLE": "Attributes required on resolution", "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.", + "NO_ATTRIBUTES": "No attributes added yet", "ADD": { "TITLE": "Add Attributes", "SEARCH_PLACEHOLDER": "Search attributes"