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 }}