-
{{ selected.emoji }}
+
+ {{ selected.emoji }}
+ ({{ selected.calling_code }})
@@ -116,7 +121,8 @@ const userStore = useUserStore()
const allCountries = countries.map((country) => ({
label: country.name,
- value: country.calling_code,
- emoji: country.emoji
+ value: country.iso_2,
+ emoji: country.emoji,
+ calling_code: country.calling_code
}))
diff --git a/frontend/src/features/contact/formSchema.js b/frontend/src/features/contact/formSchema.js
index 95fe9b87..6e87540e 100644
--- a/frontend/src/features/contact/formSchema.js
+++ b/frontend/src/features/contact/formSchema.js
@@ -29,7 +29,7 @@ export const createFormSchema = (t) => z.object({
})
})
.nullable(),
- phone_number_calling_code: z.string().optional().nullable(),
+ phone_number_country_code: z.string().optional().nullable(),
avatar_url: z.string().optional().nullable(),
email: z
.string({
diff --git a/frontend/src/features/conversation/sidebar/ConversationSideBarContact.vue b/frontend/src/features/conversation/sidebar/ConversationSideBarContact.vue
index f0fbd45c..22dcc0be 100644
--- a/frontend/src/features/conversation/sidebar/ConversationSideBarContact.vue
+++ b/frontend/src/features/conversation/sidebar/ConversationSideBarContact.vue
@@ -58,6 +58,7 @@ import { ViewVerticalIcon } from '@radix-icons/vue'
import { Button } from '@/components/ui/button'
import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'
import { Mail, Phone, ExternalLink } from 'lucide-vue-next'
+import countries from '@/constants/countries.js'
import { useEmitter } from '@/composables/useEmitter'
import { EMITTER_EVENTS } from '@/constants/emitterEvents.js'
import { useConversationStore } from '@/stores/conversation'
@@ -72,8 +73,13 @@ const { t } = useI18n()
const userStore = useUserStore()
const phoneNumber = computed(() => {
- const callingCode = conversation.value?.contact?.phone_number_calling_code || ''
+ const countryCodeValue = conversation.value?.contact?.phone_number_country_code || ''
const number = conversation.value?.contact?.phone_number || t('conversation.sidebar.notAvailable')
- return callingCode ? `${callingCode} ${number}` : number
+ if (!countryCodeValue) return number
+
+ // Lookup calling code
+ const country = countries.find((c) => c.iso_2 === countryCodeValue)
+ const callingCode = country ? country.calling_code : countryCodeValue
+ return `${callingCode} ${number}`
})
diff --git a/frontend/src/views/contact/ContactDetailView.vue b/frontend/src/views/contact/ContactDetailView.vue
index 3c1d557b..7747b3da 100644
--- a/frontend/src/views/contact/ContactDetailView.vue
+++ b/frontend/src/views/contact/ContactDetailView.vue
@@ -5,7 +5,11 @@
-