diff --git a/app/javascript/dashboard/components-next/Contacts/ContactsCard/ContactsCard.vue b/app/javascript/dashboard/components-next/Contacts/ContactsCard/ContactsCard.vue
index 4ba3546ce..52a8d1e12 100644
--- a/app/javascript/dashboard/components-next/Contacts/ContactsCard/ContactsCard.vue
+++ b/app/javascript/dashboard/components-next/Contacts/ContactsCard/ContactsCard.vue
@@ -38,14 +38,16 @@ const onClickViewDetails = async () => {
{{ name }}
-
-
- {{ t('CONTACTS_LAYOUT.CARD.OF') }}
-
-
- {{ additionalAttributes.companyName }}
-
-
+
+
+ {{ additionalAttributes.companyName }}
+
{{ email }}
diff --git a/app/javascript/dashboard/components-next/Contacts/Pages/ContactDetails.vue b/app/javascript/dashboard/components-next/Contacts/Pages/ContactDetails.vue
index e43fb92c9..32aedca5d 100644
--- a/app/javascript/dashboard/components-next/Contacts/Pages/ContactDetails.vue
+++ b/app/javascript/dashboard/components-next/Contacts/Pages/ContactDetails.vue
@@ -63,7 +63,7 @@ const updateContact = async updatedData => {
const handleFormUpdate = debounce(
updatedData => updateContact(updatedData),
- 500,
+ 600,
false
);
diff --git a/app/javascript/dashboard/components-next/Contacts/Pages/ContactsList.vue b/app/javascript/dashboard/components-next/Contacts/Pages/ContactsList.vue
index 3be194847..95493feee 100644
--- a/app/javascript/dashboard/components-next/Contacts/Pages/ContactsList.vue
+++ b/app/javascript/dashboard/components-next/Contacts/Pages/ContactsList.vue
@@ -27,7 +27,7 @@ const updateContact = async ({ id, updatedData }) => {
const handleFormUpdate = debounce(
({ id, updatedData }) => updateContact({ id, updatedData }),
- 500,
+ 600,
false
);
diff --git a/app/javascript/dashboard/components-next/label/story/fixtures.js b/app/javascript/dashboard/components-next/label/story/fixtures.js
index ba61d45bf..980ba8c0d 100644
--- a/app/javascript/dashboard/components-next/label/story/fixtures.js
+++ b/app/javascript/dashboard/components-next/label/story/fixtures.js
@@ -9,7 +9,6 @@ export const labelMenuItems = [
label: 'delivery',
value: 3,
thumbnail: {
- name: 'delivery',
color: '#A2FDD5',
},
isSelected: true,
@@ -19,7 +18,6 @@ export const labelMenuItems = [
label: 'lead',
value: 6,
thumbnail: {
- name: 'lead',
color: '#F161C8',
},
isSelected: false,
@@ -29,7 +27,6 @@ export const labelMenuItems = [
label: 'ops-handover',
value: 4,
thumbnail: {
- name: 'ops-handover',
color: '#A53326',
},
isSelected: false,
@@ -39,7 +36,6 @@ export const labelMenuItems = [
label: 'billing',
value: 1,
thumbnail: {
- name: 'billing',
color: '#28AD21',
},
isSelected: false,
@@ -49,7 +45,6 @@ export const labelMenuItems = [
label: 'premium-customer',
value: 5,
thumbnail: {
- name: 'premium-customer',
color: '#6FD4EF',
},
isSelected: false,
@@ -59,7 +54,6 @@ export const labelMenuItems = [
label: 'software',
value: 2,
thumbnail: {
- name: 'software',
color: '#8F6EF2',
},
isSelected: false,
diff --git a/app/javascript/dashboard/i18n/locale/en/contact.json b/app/javascript/dashboard/i18n/locale/en/contact.json
index 1ae2d1ea2..6f1322551 100644
--- a/app/javascript/dashboard/i18n/locale/en/contact.json
+++ b/app/javascript/dashboard/i18n/locale/en/contact.json
@@ -449,7 +449,6 @@
"SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
},
"CARD": {
- "OF": "of",
"VIEW_DETAILS": "View details",
"EDIT_DETAILS_FORM": {
"TITLE": "Edit contact details",
diff --git a/app/javascript/dashboard/store/modules/contacts/actions.js b/app/javascript/dashboard/store/modules/contacts/actions.js
index aacde61e6..9bd5e184d 100644
--- a/app/javascript/dashboard/store/modules/contacts/actions.js
+++ b/app/javascript/dashboard/store/modules/contacts/actions.js
@@ -4,6 +4,7 @@ import {
} from 'shared/helpers/CustomErrors';
import types from '../../mutation-types';
import ContactAPI from '../../../api/contacts';
+import decamelizeKeys from 'decamelize-keys';
import AccountActionsAPI from '../../../api/accountActions';
import AnalyticsHelper from '../../../helper/AnalyticsHelper';
import { CONTACTS_EVENTS } from '../../../helper/AnalyticsHelper/events';
@@ -90,11 +91,16 @@ export const actions = {
},
update: async ({ commit }, { id, isFormData = false, ...contactParams }) => {
+ const decamelizedContactParams = decamelizeKeys(contactParams, {
+ deep: true,
+ });
commit(types.SET_CONTACT_UI_FLAG, { isUpdating: true });
try {
const response = await ContactAPI.update(
id,
- isFormData ? buildContactFormData(contactParams) : contactParams
+ isFormData
+ ? buildContactFormData(decamelizedContactParams)
+ : decamelizedContactParams
);
commit(types.EDIT_CONTACT, response.data.payload);
commit(types.SET_CONTACT_UI_FLAG, { isUpdating: false });
diff --git a/package.json b/package.json
index 61ad71941..2c7815f80 100644
--- a/package.json
+++ b/package.json
@@ -65,6 +65,7 @@
"countries-and-timezones": "^3.6.0",
"date-fns": "2.21.1",
"date-fns-tz": "^1.3.3",
+ "decamelize-keys": "^2.0.1",
"dompurify": "3.1.6",
"floating-vue": "^5.2.2",
"highlight.js": "^11.10.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 33d7dc8ff..f3ae48fdf 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -118,6 +118,9 @@ importers:
date-fns-tz:
specifier: ^1.3.3
version: 1.3.8(date-fns@2.21.1)
+ decamelize-keys:
+ specifier: ^2.0.1
+ version: 2.0.1
dompurify:
specifier: 3.1.6
version: 3.1.6
@@ -2428,6 +2431,14 @@ packages:
supports-color:
optional: true
+ decamelize-keys@2.0.1:
+ resolution: {integrity: sha512-nrNeSCtU2gV3Apcmn/EZ+aR20zKDuNDStV67jPiupokD3sOAFeMzslLMCFdKv1sPqzwoe5ZUhsSW9IAVgKSL/Q==}
+ engines: {node: '>=14.16'}
+
+ decamelize@6.0.0:
+ resolution: {integrity: sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
decimal.js@10.4.3:
resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
@@ -3479,6 +3490,10 @@ packages:
resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
engines: {node: '>=10'}
+ map-obj@4.3.0:
+ resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
+ engines: {node: '>=8'}
+
map-obj@5.0.0:
resolution: {integrity: sha512-2L3MIgJynYrZ3TYMriLDLWocz15okFakV6J12HXvMXDHui2x/zgChzg1u9mFFGbbGWE+GsLpQByt4POb9Or+uA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -4659,6 +4674,10 @@ packages:
resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
engines: {node: '>=10'}
+ type-fest@3.13.1:
+ resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==}
+ engines: {node: '>=14.16'}
+
type-fest@4.26.1:
resolution: {integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==}
engines: {node: '>=16'}
@@ -7494,6 +7513,15 @@ snapshots:
dependencies:
ms: 2.1.3
+ decamelize-keys@2.0.1:
+ dependencies:
+ decamelize: 6.0.0
+ map-obj: 4.3.0
+ quick-lru: 6.1.2
+ type-fest: 3.13.1
+
+ decamelize@6.0.0: {}
+
decimal.js@10.4.3: {}
deep-eql@5.0.2: {}
@@ -8806,6 +8834,8 @@ snapshots:
dependencies:
semver: 7.6.3
+ map-obj@4.3.0: {}
+
map-obj@5.0.0: {}
markdown-it-anchor@8.6.7(@types/markdown-it@12.2.3)(markdown-it@12.3.2):
@@ -10083,6 +10113,8 @@ snapshots:
type-fest@1.4.0: {}
+ type-fest@3.13.1: {}
+
type-fest@4.26.1: {}
typed-array-buffer@1.0.0: