From 1b0e94ec95a43b814d39ef17aab446db435c552e Mon Sep 17 00:00:00 2001 From: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Date: Tue, 10 Dec 2024 11:53:24 +0530 Subject: [PATCH] feat: Flag icon component (#10564) --- .../Contacts/ContactsCard/ContactsCard.vue | 27 ++++-- .../dashboard/components-next/flag/Flag.vue | 24 +++++ .../components-next/flag/story/Flag.story.vue | 93 +++++++++++++++++++ .../conversation/contact/ContactInfo.vue | 9 +- .../conversation/contact/ContactInfoRow.vue | 5 +- package.json | 1 + pnpm-lock.yaml | 8 ++ 7 files changed, 153 insertions(+), 14 deletions(-) create mode 100644 app/javascript/dashboard/components-next/flag/Flag.vue create mode 100644 app/javascript/dashboard/components-next/flag/story/Flag.story.vue diff --git a/app/javascript/dashboard/components-next/Contacts/ContactsCard/ContactsCard.vue b/app/javascript/dashboard/components-next/Contacts/ContactsCard/ContactsCard.vue index 9875ae2ac..a3b0bf37c 100644 --- a/app/javascript/dashboard/components-next/Contacts/ContactsCard/ContactsCard.vue +++ b/app/javascript/dashboard/components-next/Contacts/ContactsCard/ContactsCard.vue @@ -6,6 +6,7 @@ import CardLayout from 'dashboard/components-next/CardLayout.vue'; import ContactsForm from 'dashboard/components-next/Contacts/ContactsForm/ContactsForm.vue'; import Button from 'dashboard/components-next/button/Button.vue'; import Avatar from 'dashboard/components-next/avatar/Avatar.vue'; +import Flag from 'dashboard/components-next/flag/Flag.vue'; import countries from 'shared/constants/countries'; const props = defineProps({ @@ -56,13 +57,19 @@ const countryDetails = computed(() => { if (!activeCountry) return null; - const parts = [ - activeCountry.emoji, - city ? `${city},` : null, - activeCountry.name, - ].filter(Boolean); + return { + countryCode: activeCountry.id, + city: city ? `${city},` : null, + name: activeCountry.name, + }; +}); - return parts.length ? parts.join(' ') : null; +const formattedLocation = computed(() => { + if (!countryDetails.value) return ''; + + return [countryDetails.value.city, countryDetails.value.name] + .filter(Boolean) + .join(' '); }); const handleFormUpdate = updatedData => { @@ -114,8 +121,12 @@ const onClickViewDetails = () => emit('showContact', props.id); {{ phoneNumber }}
- - {{ countryDetails }} + + + {{ formattedLocation }}