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 image image ## 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