From 53e25852753f5ef50cf095ab0c46277a1cebe891 Mon Sep 17 00:00:00 2001
From: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
Date: Tue, 10 Jun 2025 23:29:25 +0530
Subject: [PATCH] feat: Show conversation count for filters/folders in header
(#11698)
# Pull Request Template
## Description
Fixes
https://linear.app/chatwoot/issue/CW-4467/show-the-conversation-count-at-the-top-for-filters-and-folders
## Type of change
- [x] New feature (non-breaking change which adds functionality)
## How Has This Been Tested?
### Screenshots
## Checklist:
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my code
- [ ] I have commented on my code, particularly in hard-to-understand
areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream
modules
---
.../dashboard/components/ChatList.vue | 2 +
.../dashboard/components/ChatListHeader.vue | 40 +++++++++----------
package.json | 2 +-
pnpm-lock.yaml | 10 ++---
4 files changed, 28 insertions(+), 26 deletions(-)
diff --git a/app/javascript/dashboard/components/ChatList.vue b/app/javascript/dashboard/components/ChatList.vue
index 098bc41c1..de895c76e 100644
--- a/app/javascript/dashboard/components/ChatList.vue
+++ b/app/javascript/dashboard/components/ChatList.vue
@@ -853,6 +853,8 @@ watch(conversationFilters, (newVal, oldVal) => {
:has-active-folders="hasActiveFolders"
:active-status="activeStatus"
:is-on-expanded-layout="isOnExpandedLayout"
+ :conversation-stats="conversationStats"
+ :is-list-loading="chatListLoading"
@add-folders="onClickOpenAddFoldersModal"
@delete-folders="onClickOpenDeleteFoldersModal"
@filters-modal="onToggleAdvanceFiltersModal"
diff --git a/app/javascript/dashboard/components/ChatListHeader.vue b/app/javascript/dashboard/components/ChatListHeader.vue
index b4ce9f342..c184103c0 100644
--- a/app/javascript/dashboard/components/ChatListHeader.vue
+++ b/app/javascript/dashboard/components/ChatListHeader.vue
@@ -2,6 +2,7 @@
import { computed } from 'vue';
import { useUISettings } from 'dashboard/composables/useUISettings';
import { useMapGetter } from 'dashboard/composables/store.js';
+import { formatNumber } from '@chatwoot/utils';
import wootConstants from 'dashboard/constants/globals';
import { FEATURE_FLAGS } from 'dashboard/featureFlags';
@@ -10,26 +11,13 @@ import SwitchLayout from 'dashboard/routes/dashboard/conversation/search/SwitchL
import NextButton from 'dashboard/components-next/button/Button.vue';
const props = defineProps({
- pageTitle: {
- type: String,
- required: true,
- },
- hasAppliedFilters: {
- type: Boolean,
- required: true,
- },
- hasActiveFolders: {
- type: Boolean,
- required: true,
- },
- activeStatus: {
- type: String,
- required: true,
- },
- isOnExpandedLayout: {
- type: Boolean,
- required: true,
- },
+ pageTitle: { type: String, required: true },
+ hasAppliedFilters: { type: Boolean, required: true },
+ hasActiveFolders: { type: Boolean, required: true },
+ activeStatus: { type: String, required: true },
+ isOnExpandedLayout: { type: Boolean, required: true },
+ conversationStats: { type: Object, required: true },
+ isListLoading: { type: Boolean, required: true },
});
const emit = defineEmits([
@@ -62,6 +50,9 @@ const showV4View = computed(() => {
);
});
+const allCount = computed(() => props.conversationStats?.allCount || 0);
+const formattedAllCount = computed(() => formatNumber(allCount.value));
+
const toggleConversationLayout = () => {
const { LAYOUT_TYPES } = wootConstants;
const {
@@ -92,6 +83,15 @@ const toggleConversationLayout = () => {
>
{{ pageTitle }}
+
+ {{ formattedAllCount }}
+
=10'}
'@codemirror/commands@6.7.0':
@@ -5255,7 +5255,7 @@ snapshots:
prosemirror-utils: 1.2.2(prosemirror-model@1.22.3)(prosemirror-state@1.4.3)
prosemirror-view: 1.34.1
- '@chatwoot/utils@0.0.46':
+ '@chatwoot/utils@0.0.47':
dependencies:
date-fns: 2.30.0