iachat/app/javascript/dashboard/store/modules
Shivam Mishra 9761214860
feat: Add debounce for meta query (#11195)
This PR combines the approaches in
https://github.com/chatwoot/chatwoot/pull/11190 and
https://github.com/chatwoot/chatwoot/pull/11187 to debounce the meta
request with a max wait time of 2.5 seconds With 500 concurrent users,
the theoretical limit with this is 720K requests per minute, if all of
them continuously receive websocket events.

The max wait of 2.5 seconds is still very generous, and we can easily
make it 2 seconds for smaller accounts and 5 seconds for larger
accounts.

```js
const debouncedFetchMetaData = debounce(fetchMetaData, 500, false, 200);
const longDebouncedFetchMetaData = debounce(fetchMetaData, 500, false, 5000);

export const actions = {
  get: async ({ commit, state: $state }, params) => {
    if ($state.allCount > 100) {
      longDebouncedFetchMetaData(commit, params);
    } else {
      debouncedFetchMetaData(commit, params);
    }
  },
  set({ commit }, meta) {
    commit(types.SET_CONV_TAB_META, meta);
  },
};

```

Related Utils PR: https://github.com/chatwoot/utils/pull/49
Here's the debounce in action

<img width="934" alt="image"
src="https://github.com/user-attachments/assets/5265a108-9c64-4488-9b4c-2e0d06aadc50"
/>

---------

Co-authored-by: Pranav <pranavrajs@gmail.com>
2025-03-27 19:41:02 -07:00
..
contacts feat(v4): Compose new conversation without multiple clicks (#10545) 2024-12-05 20:16:29 -08:00
conversations feat: Add support for frontend filtering of conversations (#11111) 2025-03-24 19:39:04 -07:00
helpCenterArticles chore: Help center improvements (#10712) 2025-01-21 13:50:01 +05:30
helpCenterCategories feat(v4): Update the help center portal design (#10296) 2024-10-23 22:09:36 -07:00
helpCenterPortals feat(v4): Update the help center portal design (#10296) 2024-10-23 22:09:36 -07:00
notifications feat: Add unread badge to sidebar for inbox view (#10803) 2025-01-31 15:14:10 +05:30
specs feat: Add debounce for meta query (#11195) 2025-03-27 19:41:02 -07:00
teams feat(v4): Update the report pages to show aggregate values (#10766) 2025-01-28 09:19:18 +05:30
accounts.js feat: Replace rtlMixin to a composable (#9924) 2024-08-12 15:50:21 +05:30
agentBots.js feat: Vite + vue 3 💚 (#10047) 2024-10-02 00:36:30 -07:00
agents.js feat(v4): Update the report pages to show aggregate values (#10766) 2025-01-28 09:19:18 +05:30
attributes.js fix: Update contact details page errors (#10536) 2024-12-04 13:58:53 -08:00
auditlogs.js feat: audit logs UI (#6803) 2023-04-17 19:11:05 +05:30
auth.js fix: Fix issue with profile picture not updating (#10532) 2024-12-04 15:02:29 -08:00
automations.js feat: Update the design for automation (#10002) 2024-08-22 16:22:54 +05:30
bulkActions.js feat: Adds support for all snooze option in bulk actions (#9361) 2024-05-09 19:27:31 +05:30
campaigns.js feat(v4): Update the campaigns page design (#10371) 2024-10-31 11:57:13 +05:30
cannedResponse.js feat: Update the design for canned responses (#9903) 2024-08-07 09:43:47 -07:00
contactConversations.js feat(v4): Add new contact details screen (#10504) 2024-12-03 21:29:47 -08:00
contactLabels.js feat: Vite + vue 3 💚 (#10047) 2024-10-02 00:36:30 -07:00
contactNotes.js feat(v4): Add new contact details screen (#10504) 2024-12-03 21:29:47 -08:00
conversationLabels.js feat: Vite + vue 3 💚 (#10047) 2024-10-02 00:36:30 -07:00
conversationMetadata.js feat: Vite + vue 3 💚 (#10047) 2024-10-02 00:36:30 -07:00
conversationPage.js feat: Vite + vue 3 💚 (#10047) 2024-10-02 00:36:30 -07:00
conversationSearch.js chore: Search improvements (#10801) 2025-02-03 19:34:50 +05:30
conversationStats.js feat: Add debounce for meta query (#11195) 2025-03-27 19:41:02 -07:00
conversationTypingStatus.js feat: Vite + vue 3 💚 (#10047) 2024-10-02 00:36:30 -07:00
conversationWatchers.js feat: Vite + vue 3 💚 (#10047) 2024-10-02 00:36:30 -07:00
csat.js feat: more CSAT filters (#7038) 2023-05-18 22:50:46 +05:30
customRole.js chore: Custom Roles to manage permissions [ UI ] (#9865) 2024-09-17 11:40:11 -07:00
customViews.js feat: Improve Contact list (#10522) 2024-12-02 18:23:41 -08:00
dashboardApps.js feat: Add the ability to create dashboard apps from the UI (#4924) 2022-07-08 15:55:32 +07:00
draftMessages.js feat: Vite + vue 3 💚 (#10047) 2024-10-02 00:36:30 -07:00
inboxAssignableAgents.js feat: Vite + vue 3 💚 (#10047) 2024-10-02 00:36:30 -07:00
inboxes.js feat(v4): Add new contact details screen (#10504) 2024-12-03 21:29:47 -08:00
inboxMembers.js Chore: Inbox Members API improvements (#3008) 2021-09-14 11:55:02 +05:30
integrations.js feat: Vite + vue 3 💚 (#10047) 2024-10-02 00:36:30 -07:00
labels.js feat: multiple UX improvements to labels (#7358) 2023-06-25 18:49:49 +05:30
macros.js feat: Add API module and Vuex store for Macros (#5603) 2022-10-11 22:54:17 -07:00
reports.js feat: Add live report for teams (#10849) 2025-03-12 16:03:09 -07:00
sla.js feat: add option to delete and disable edits for SLA (#9108) 2024-03-15 12:21:32 +05:30
SLAReports.js feat: Download SLA reports (#9201) 2024-04-08 20:51:34 -07:00
summaryReports.js feat(v4): Update the report pages to show aggregate values (#10766) 2025-01-28 09:19:18 +05:30
teamMembers.js feat: Vite + vue 3 💚 (#10047) 2024-10-02 00:36:30 -07:00
userNotificationSettings.js feat: Vite + vue 3 💚 (#10047) 2024-10-02 00:36:30 -07:00
webhooks.js feat: Add event subscription option to webhooks (#4540) 2022-04-25 17:44:42 +05:30