From 769b7171f47195b2fa31b616e0fb5b66a71d1e0f Mon Sep 17 00:00:00 2001 From: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Date: Wed, 4 Dec 2024 10:59:47 +0530 Subject: [PATCH] feat(v4): Add new contact details screen (#10504) Co-authored-by: Pranav --- .../Contacts/ContactLabels/ContactLabels.vue | 108 ++++++++ .../Contacts/ContactsDetailsLayout.vue | 83 ++++++ .../ConfirmContactDeleteDialog.vue | 58 ++++ .../ContactsForm/ContactMergeForm.vue | 2 +- .../Contacts/ContactsForm/ContactsForm.vue | 10 +- .../Contacts/ContactsHeader/ContactHeader.vue | 10 +- .../ContactListHeaderWrapper.vue | 6 + .../ContactsActiveFiltersPreview.vue | 3 +- .../Contacts/ContactsListLayout.vue | 15 +- .../ContactCustomAttributeItem.vue | 95 +++++++ .../ContactCustomAttributes.vue | 132 +++++++++ .../ContactsSidebar/ContactHistory.vue | 57 ++++ .../Contacts/ContactsSidebar/ContactMerge.vue | 142 ++++++++++ .../Contacts/ContactsSidebar/ContactNotes.vue | 99 +++++++ .../Contacts/Pages/ContactDetails.vue | 182 +++++++++++++ .../Contacts/Pages/ContactsList.vue | 17 +- .../ConversationCard/CardMessagePreview.vue | 11 +- .../CardMessagePreviewWithMeta.vue | 11 +- .../ConversationCard/ConversationCard.vue | 29 +- .../CustomAttributes/DateAttribute.vue | 2 +- .../CustomAttributes/OtherAttribute.vue | 5 +- .../components-next/Editor/Editor.vue | 18 +- .../components-next/breadcrumb/Breadcrumb.vue | 8 - .../combobox/ComboBoxDropdown.vue | 2 +- .../filter/ActiveFilterPreview.vue | 8 +- .../components-next/sidebar/Sidebar.vue | 37 +-- .../dashboard/composables/useTransformKeys.js | 13 + .../dashboard/i18n/locale/en/contact.json | 34 +++ .../contacts/pages/ContactManageView.vue | 250 ++++++++++-------- .../contacts/pages/ContactsIndex.vue | 1 + .../routes/dashboard/contacts/routes.js | 76 +++--- .../dashboard/store/modules/attributes.js | 6 + .../store/modules/contactConversations.js | 5 + .../dashboard/store/modules/contactNotes.js | 6 + .../store/modules/contacts/actions.js | 19 +- .../store/modules/contacts/getters.js | 7 + .../dashboard/store/modules/inboxes.js | 7 + 37 files changed, 1353 insertions(+), 221 deletions(-) create mode 100644 app/javascript/dashboard/components-next/Contacts/ContactLabels/ContactLabels.vue create mode 100644 app/javascript/dashboard/components-next/Contacts/ContactsDetailsLayout.vue create mode 100644 app/javascript/dashboard/components-next/Contacts/ContactsForm/ConfirmContactDeleteDialog.vue create mode 100644 app/javascript/dashboard/components-next/Contacts/ContactsSidebar/ContactCustomAttributeItem.vue create mode 100644 app/javascript/dashboard/components-next/Contacts/ContactsSidebar/ContactCustomAttributes.vue create mode 100644 app/javascript/dashboard/components-next/Contacts/ContactsSidebar/ContactHistory.vue create mode 100644 app/javascript/dashboard/components-next/Contacts/ContactsSidebar/ContactMerge.vue create mode 100644 app/javascript/dashboard/components-next/Contacts/ContactsSidebar/ContactNotes.vue create mode 100644 app/javascript/dashboard/components-next/Contacts/Pages/ContactDetails.vue diff --git a/app/javascript/dashboard/components-next/Contacts/ContactLabels/ContactLabels.vue b/app/javascript/dashboard/components-next/Contacts/ContactLabels/ContactLabels.vue new file mode 100644 index 000000000..255c1b113 --- /dev/null +++ b/app/javascript/dashboard/components-next/Contacts/ContactLabels/ContactLabels.vue @@ -0,0 +1,108 @@ + + + diff --git a/app/javascript/dashboard/components-next/Contacts/ContactsDetailsLayout.vue b/app/javascript/dashboard/components-next/Contacts/ContactsDetailsLayout.vue new file mode 100644 index 000000000..6e7d42bc9 --- /dev/null +++ b/app/javascript/dashboard/components-next/Contacts/ContactsDetailsLayout.vue @@ -0,0 +1,83 @@ + + + diff --git a/app/javascript/dashboard/components-next/Contacts/ContactsForm/ConfirmContactDeleteDialog.vue b/app/javascript/dashboard/components-next/Contacts/ContactsForm/ConfirmContactDeleteDialog.vue new file mode 100644 index 000000000..d9c0deb1b --- /dev/null +++ b/app/javascript/dashboard/components-next/Contacts/ContactsForm/ConfirmContactDeleteDialog.vue @@ -0,0 +1,58 @@ + + + diff --git a/app/javascript/dashboard/components-next/Contacts/ContactsForm/ContactMergeForm.vue b/app/javascript/dashboard/components-next/Contacts/ContactsForm/ContactMergeForm.vue index dc38c4649..8adcce6b2 100644 --- a/app/javascript/dashboard/components-next/Contacts/ContactsForm/ContactMergeForm.vue +++ b/app/javascript/dashboard/components-next/Contacts/ContactsForm/ContactMergeForm.vue @@ -98,7 +98,7 @@ const { t } = useI18n(); :size="32" rounded-full /> -
+
{{ selectedContact.name }} diff --git a/app/javascript/dashboard/components-next/Contacts/ContactsForm/ContactsForm.vue b/app/javascript/dashboard/components-next/Contacts/ContactsForm/ContactsForm.vue index 90329b311..b6b24ce26 100644 --- a/app/javascript/dashboard/components-next/Contacts/ContactsForm/ContactsForm.vue +++ b/app/javascript/dashboard/components-next/Contacts/ContactsForm/ContactsForm.vue @@ -96,11 +96,11 @@ const prepareStateBasedOnProps = () => { } = props.contactData || {}; const { firstName, lastName } = splitName(name); const { - description, - companyName, - countryCode, - country, - city, + description = '', + companyName = '', + countryCode = '', + country = '', + city = '', socialProfiles = {}, } = additionalAttributes || {}; diff --git a/app/javascript/dashboard/components-next/Contacts/ContactsHeader/ContactHeader.vue b/app/javascript/dashboard/components-next/Contacts/ContactsHeader/ContactHeader.vue index 6e32b8581..4406a996c 100644 --- a/app/javascript/dashboard/components-next/Contacts/ContactsHeader/ContactHeader.vue +++ b/app/javascript/dashboard/components-next/Contacts/ContactsHeader/ContactHeader.vue @@ -38,6 +38,10 @@ defineProps({ type: Boolean, default: false, }, + isLabelView: { + type: Boolean, + default: false, + }, }); const emit = defineEmits([ @@ -81,7 +85,7 @@ const emit = defineEmits([
-
+