From 8d191a70b14bc480a854c9e2a8311c7eb9aaf5e1 Mon Sep 17 00:00:00 2001 From: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Date: Wed, 10 Dec 2025 19:47:20 +0530 Subject: [PATCH] feat: Update contact list page (#13020) --- .../components/ExclusionRules.vue | 4 +- .../Companies/CompaniesDropdown.vue | 139 +++++++ .../components/CompanySortMenu.vue | 2 +- .../Contacts/ContactLabels/ContactLabels.vue | 54 +-- .../Contacts/ContactsCard/AddContactNote.vue | 67 ++++ .../Contacts/ContactsCard/ContactCardForm.vue | 319 ++++++++++++++++ .../ContactsCard/ContactDeleteSection.vue | 68 ---- .../Contacts/ContactsCard/ContactsCard.vue | 356 ++++++++++++------ .../Contacts/ContactsHeader/ContactHeader.vue | 2 +- .../ContactListHeaderWrapper.vue | 2 +- .../components/ContactSortMenu.vue | 2 +- .../ContactsActiveFiltersPreview.vue | 2 +- .../Contacts/ContactsListLayout.vue | 4 +- .../Contacts/Pages/ContactsList.vue | 54 ++- .../ConversationCard/CardLabels.vue | 70 ++-- .../ConversationCardCompact.vue | 2 +- .../ConversationCardExpanded.vue | 2 +- .../Countries/CountryDropdown.vue | 120 ++++++ .../components-next/Label/AddLabel.vue | 49 --- .../components-next/Label/LabelItem.vue | 57 --- .../NewConversation/ComposeConversation.vue | 4 + .../copilot/CopilotLauncher.vue | 6 +- .../dropdown-menu/DropdownMenu.vue | 8 +- .../dashboard/components-next/input/Input.vue | 2 +- .../components-next/label/AddLabel.vue | 69 ++++ .../dashboard/components-next/label/Label.vue | 33 ++ .../components-next/label/LabelItem.vue | 54 +++ .../{Label => label}/story/AddLabel.story.vue | 0 .../{Label => label}/story/Label.story.vue | 0 .../{Label => label}/story/fixtures.js | 0 .../pagination/PaginationFooter.vue | 12 +- .../phonenumberinput/PhoneNumberInput.vue | 1 + .../sidebar/MobileSidebarLauncher.vue | 13 +- .../sidebar/SidebarProfileMenu.vue | 2 +- .../dashboard/i18n/locale/en/companies.json | 3 + .../dashboard/i18n/locale/en/components.json | 2 +- .../dashboard/i18n/locale/en/contact.json | 20 +- .../i18n/locale/en/conversation.json | 3 +- .../components/ContactsBulkActionBar.vue | 11 +- .../conversation/LabelAssignment.vue | 16 +- .../reports/components/SLA/SLAReportItem.vue | 2 +- .../store/modules/contacts/actions.js | 7 + .../api/v1/models/_contact.json.jbuilder | 1 + tailwind.config.js | 1 + 44 files changed, 1266 insertions(+), 379 deletions(-) create mode 100644 app/javascript/dashboard/components-next/Companies/CompaniesDropdown.vue create mode 100644 app/javascript/dashboard/components-next/Contacts/ContactsCard/AddContactNote.vue create mode 100644 app/javascript/dashboard/components-next/Contacts/ContactsCard/ContactCardForm.vue delete mode 100644 app/javascript/dashboard/components-next/Contacts/ContactsCard/ContactDeleteSection.vue create mode 100644 app/javascript/dashboard/components-next/Countries/CountryDropdown.vue delete mode 100644 app/javascript/dashboard/components-next/Label/AddLabel.vue delete mode 100644 app/javascript/dashboard/components-next/Label/LabelItem.vue create mode 100644 app/javascript/dashboard/components-next/label/AddLabel.vue create mode 100644 app/javascript/dashboard/components-next/label/Label.vue create mode 100644 app/javascript/dashboard/components-next/label/LabelItem.vue rename app/javascript/dashboard/components-next/{Label => label}/story/AddLabel.story.vue (100%) rename app/javascript/dashboard/components-next/{Label => label}/story/Label.story.vue (100%) rename app/javascript/dashboard/components-next/{Label => label}/story/fixtures.js (100%) diff --git a/app/javascript/dashboard/components-next/AssignmentPolicy/components/ExclusionRules.vue b/app/javascript/dashboard/components-next/AssignmentPolicy/components/ExclusionRules.vue index 351e3240f..2c1be7456 100644 --- a/app/javascript/dashboard/components-next/AssignmentPolicy/components/ExclusionRules.vue +++ b/app/javascript/dashboard/components-next/AssignmentPolicy/components/ExclusionRules.vue @@ -2,7 +2,7 @@ import { computed, ref, onMounted } from 'vue'; import { useI18n } from 'vue-i18n'; import AddDataDropdown from 'dashboard/components-next/AssignmentPolicy/components/AddDataDropdown.vue'; -import LabelItem from 'dashboard/components-next/Label/LabelItem.vue'; +import LabelItem from 'dashboard/components-next/label/LabelItem.vue'; import DurationInput from 'dashboard/components-next/input/DurationInput.vue'; import { DURATION_UNITS } from 'dashboard/components-next/input/constants'; @@ -103,7 +103,7 @@ onMounted(() => { :key="tag.id" :label="tag" :is-hovered="hoveredLabel === tag.id" - class="h-8" + class="h-8 ltr:!pr-1 rtl:!pl-1" @remove="onClickRemoveTag" @hover="hoveredLabel = tag.id" /> diff --git a/app/javascript/dashboard/components-next/Companies/CompaniesDropdown.vue b/app/javascript/dashboard/components-next/Companies/CompaniesDropdown.vue new file mode 100644 index 000000000..584c299d4 --- /dev/null +++ b/app/javascript/dashboard/components-next/Companies/CompaniesDropdown.vue @@ -0,0 +1,139 @@ + + + diff --git a/app/javascript/dashboard/components-next/Companies/CompaniesHeader/components/CompanySortMenu.vue b/app/javascript/dashboard/components-next/Companies/CompaniesHeader/components/CompanySortMenu.vue index 768123b9f..ba91e5749 100644 --- a/app/javascript/dashboard/components-next/Companies/CompaniesHeader/components/CompanySortMenu.vue +++ b/app/javascript/dashboard/components-next/Companies/CompaniesHeader/components/CompanySortMenu.vue @@ -87,7 +87,7 @@ const handleOrderChange = value => {
diff --git a/app/javascript/dashboard/components-next/Contacts/ContactLabels/ContactLabels.vue b/app/javascript/dashboard/components-next/Contacts/ContactLabels/ContactLabels.vue index bc1370a0a..22d0f3562 100644 --- a/app/javascript/dashboard/components-next/Contacts/ContactLabels/ContactLabels.vue +++ b/app/javascript/dashboard/components-next/Contacts/ContactLabels/ContactLabels.vue @@ -1,10 +1,9 @@