From 59bae616cf79d9bf12492b5d8097f0af0e5d556c Mon Sep 17 00:00:00 2001 From: Shivam Mishra Date: Tue, 29 Apr 2025 16:08:20 +0530 Subject: [PATCH] feat: add UI for contact notes (#11358) Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> --- .../Contacts/ContactsSidebar/ContactNotes.vue | 2 + .../components/ContactNoteItem.vue | 66 ++++++++++++++++--- .../dashboard/composables/useUISettings.js | 1 + .../dashboard/i18n/locale/en/contact.json | 3 + .../i18n/locale/en/conversation.json | 1 + .../dashboard/conversation/ContactPanel.vue | 13 ++++ .../conversation/contact/ContactNotes.vue | 51 ++++++++++++++ 7 files changed, 127 insertions(+), 10 deletions(-) create mode 100644 app/javascript/dashboard/routes/dashboard/conversation/contact/ContactNotes.vue diff --git a/app/javascript/dashboard/components-next/Contacts/ContactsSidebar/ContactNotes.vue b/app/javascript/dashboard/components-next/Contacts/ContactsSidebar/ContactNotes.vue index d5586cb12..789aba1c8 100644 --- a/app/javascript/dashboard/components-next/Contacts/ContactsSidebar/ContactNotes.vue +++ b/app/javascript/dashboard/components-next/Contacts/ContactsSidebar/ContactNotes.vue @@ -87,8 +87,10 @@ useKeyboardEvents(keyboardEvents); diff --git a/app/javascript/dashboard/components-next/Contacts/ContactsSidebar/components/ContactNoteItem.vue b/app/javascript/dashboard/components-next/Contacts/ContactsSidebar/components/ContactNoteItem.vue index 17367c930..c11fa2d9d 100644 --- a/app/javascript/dashboard/components-next/Contacts/ContactsSidebar/components/ContactNoteItem.vue +++ b/app/javascript/dashboard/components-next/Contacts/ContactsSidebar/components/ContactNoteItem.vue @@ -1,6 +1,8 @@ diff --git a/app/javascript/dashboard/composables/useUISettings.js b/app/javascript/dashboard/composables/useUISettings.js index 418011e10..29fe878c7 100644 --- a/app/javascript/dashboard/composables/useUISettings.js +++ b/app/javascript/dashboard/composables/useUISettings.js @@ -6,6 +6,7 @@ export const DEFAULT_CONVERSATION_SIDEBAR_ITEMS_ORDER = Object.freeze([ { name: 'macros' }, { name: 'conversation_info' }, { name: 'contact_attributes' }, + { name: 'contact_notes' }, { name: 'previous_conversation' }, { name: 'conversation_participants' }, { name: 'shopify_orders' }, diff --git a/app/javascript/dashboard/i18n/locale/en/contact.json b/app/javascript/dashboard/i18n/locale/en/contact.json index 3bc3be316..fc4509809 100644 --- a/app/javascript/dashboard/i18n/locale/en/contact.json +++ b/app/javascript/dashboard/i18n/locale/en/contact.json @@ -545,6 +545,9 @@ "WROTE": "wrote", "YOU": "You", "SAVE": "Save note", + "EXPAND": "Expand", + "COLLAPSE": "Collapse", + "NO_NOTES": "No notes, you can add notes from the contact details page.", "EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above." } }, diff --git a/app/javascript/dashboard/i18n/locale/en/conversation.json b/app/javascript/dashboard/i18n/locale/en/conversation.json index 9f78a9684..da2f64b01 100644 --- a/app/javascript/dashboard/i18n/locale/en/conversation.json +++ b/app/javascript/dashboard/i18n/locale/en/conversation.json @@ -295,6 +295,7 @@ "CONVERSATION_ACTIONS": "Conversation Actions", "CONVERSATION_LABELS": "Conversation Labels", "CONVERSATION_INFO": "Conversation Information", + "CONTACT_NOTES": "Contact Notes", "CONTACT_ATTRIBUTES": "Contact Attributes", "PREVIOUS_CONVERSATION": "Previous Conversations", "MACROS": "Macros", diff --git a/app/javascript/dashboard/routes/dashboard/conversation/ContactPanel.vue b/app/javascript/dashboard/routes/dashboard/conversation/ContactPanel.vue index 5f7ef9cfa..1e6479934 100644 --- a/app/javascript/dashboard/routes/dashboard/conversation/ContactPanel.vue +++ b/app/javascript/dashboard/routes/dashboard/conversation/ContactPanel.vue @@ -13,6 +13,7 @@ import ConversationAction from './ConversationAction.vue'; import ConversationParticipant from './ConversationParticipant.vue'; import ContactInfo from './contact/ContactInfo.vue'; +import ContactNotes from './contact/ContactNotes.vue'; import ConversationInfo from './ConversationInfo.vue'; import CustomAttributes from './customAttributes/CustomAttributes.vue'; import Draggable from 'vuedraggable'; @@ -245,6 +246,18 @@ onMounted(() => { +
+ + + +
diff --git a/app/javascript/dashboard/routes/dashboard/conversation/contact/ContactNotes.vue b/app/javascript/dashboard/routes/dashboard/conversation/contact/ContactNotes.vue new file mode 100644 index 000000000..66b6876b1 --- /dev/null +++ b/app/javascript/dashboard/routes/dashboard/conversation/contact/ContactNotes.vue @@ -0,0 +1,51 @@ + + +