{
} else if (props.title == 'Notes') {
if (!all_activities.data?.notes) return []
return sortByCreation(all_activities.data.notes)
+ } else if (props.title == 'WhatsApp') {
+ if (!whatsappMessages.data) return []
+ return sortByCreation(whatsappMessages.data)
}
activities.forEach((activity) => {
activity.icon = timelineIcon(activity.activity_type, activity.is_lead)
@@ -958,6 +990,8 @@ const emptyText = computed(() => {
text = 'No Notes'
} else if (props.title == 'Tasks') {
text = 'No Tasks'
+ } else if (props.title == 'WhatsApp') {
+ text = 'No WhatsApp Messages'
}
return text
})
@@ -972,6 +1006,8 @@ const emptyTextIcon = computed(() => {
icon = NoteIcon
} else if (props.title == 'Tasks') {
icon = TaskIcon
+ } else if (props.title == 'WhatsApp') {
+ icon = WhatsAppIcon
}
return h(icon, { class: 'text-gray-500' })
})
diff --git a/frontend/src/components/Icons/CheckIcon.vue b/frontend/src/components/Icons/CheckIcon.vue
new file mode 100644
index 00000000..ad94e5df
--- /dev/null
+++ b/frontend/src/components/Icons/CheckIcon.vue
@@ -0,0 +1,16 @@
+
+
+
diff --git a/frontend/src/components/Icons/DoubleCheckIcon.vue b/frontend/src/components/Icons/DoubleCheckIcon.vue
new file mode 100644
index 00000000..77b7a478
--- /dev/null
+++ b/frontend/src/components/Icons/DoubleCheckIcon.vue
@@ -0,0 +1,17 @@
+
+
+
diff --git a/frontend/src/components/Icons/WhatsAppIcon.vue b/frontend/src/components/Icons/WhatsAppIcon.vue
new file mode 100644
index 00000000..1b8cdcfe
--- /dev/null
+++ b/frontend/src/components/Icons/WhatsAppIcon.vue
@@ -0,0 +1,28 @@
+
+
+
diff --git a/frontend/src/components/WhatsAppArea.vue b/frontend/src/components/WhatsAppArea.vue
new file mode 100644
index 00000000..8b70a49e
--- /dev/null
+++ b/frontend/src/components/WhatsAppArea.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
{{ whatsapp.message }}
+
+
+ {{ dateFormat(whatsapp.creation, 'hh:mm a') }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/pages/Deal.vue b/frontend/src/pages/Deal.vue
index 2d2345df..607b770f 100644
--- a/frontend/src/pages/Deal.vue
+++ b/frontend/src/pages/Deal.vue
@@ -293,6 +293,7 @@ import EmailIcon from '@/components/Icons/EmailIcon.vue'
import PhoneIcon from '@/components/Icons/PhoneIcon.vue'
import TaskIcon from '@/components/Icons/TaskIcon.vue'
import NoteIcon from '@/components/Icons/NoteIcon.vue'
+import WhatsAppIcon from '@/components/Icons/WhatsAppIcon.vue'
import IndicatorIcon from '@/components/Icons/IndicatorIcon.vue'
import LinkIcon from '@/components/Icons/LinkIcon.vue'
import ArrowUpRightIcon from '@/components/Icons/ArrowUpRightIcon.vue'
@@ -459,6 +460,11 @@ const tabs = [
label: __('Notes'),
icon: NoteIcon,
},
+ {
+ name: 'WhatsApp',
+ label: __('WhatsApp'),
+ icon: WhatsAppIcon,
+ },
]
const detailSections = computed(() => {
diff --git a/frontend/src/pages/Lead.vue b/frontend/src/pages/Lead.vue
index cf22dc8c..aa743872 100644
--- a/frontend/src/pages/Lead.vue
+++ b/frontend/src/pages/Lead.vue
@@ -260,6 +260,7 @@ import EmailIcon from '@/components/Icons/EmailIcon.vue'
import PhoneIcon from '@/components/Icons/PhoneIcon.vue'
import TaskIcon from '@/components/Icons/TaskIcon.vue'
import NoteIcon from '@/components/Icons/NoteIcon.vue'
+import WhatsAppIcon from '@/components/Icons/WhatsAppIcon.vue'
import IndicatorIcon from '@/components/Icons/IndicatorIcon.vue'
import CameraIcon from '@/components/Icons/CameraIcon.vue'
import LinkIcon from '@/components/Icons/LinkIcon.vue'
@@ -423,6 +424,11 @@ const tabs = [
label: __('Notes'),
icon: NoteIcon,
},
+ {
+ name: 'WhatsApp',
+ label: __('WhatsApp'),
+ icon: WhatsAppIcon,
+ },
]
function validateFile(file) {