fix: Reduce unnecessary label suggestion API calls (#12978)

This commit is contained in:
Sivin Varghese 2025-12-01 13:36:34 +05:30 committed by GitHub
parent 4627aad56d
commit 1df5fd513a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 4 additions and 6 deletions

View File

@ -258,8 +258,6 @@ export default {
created() { created() {
emitter.on(BUS_EVENTS.SCROLL_TO_MESSAGE, this.onScrollToMessage); emitter.on(BUS_EVENTS.SCROLL_TO_MESSAGE, this.onScrollToMessage);
// when a new message comes in, we refetch the label suggestions
emitter.on(BUS_EVENTS.FETCH_LABEL_SUGGESTIONS, this.fetchSuggestions);
// when a message is sent we set the flag to true this hides the label suggestions, // when a message is sent we set the flag to true this hides the label suggestions,
// until the chat is changed and the flag is reset in the watch for currentChat // until the chat is changed and the flag is reset in the watch for currentChat
emitter.on(BUS_EVENTS.MESSAGE_SENT, () => { emitter.on(BUS_EVENTS.MESSAGE_SENT, () => {
@ -291,6 +289,10 @@ export default {
return; return;
} }
// Early exit if conversation already has labels - no need to suggest more
const existingLabels = this.currentChat?.labels || [];
if (existingLabels.length > 0) return;
// method available in mixin, need to ensure that integrations are present // method available in mixin, need to ensure that integrations are present
await this.fetchIntegrationsIfRequired(); await this.fetchIntegrationsIfRequired();

View File

@ -194,7 +194,6 @@ export const mutations = {
const { conversation: { unread_count: unreadCount = 0 } = {} } = message; const { conversation: { unread_count: unreadCount = 0 } = {} } = message;
chat.unread_count = unreadCount; chat.unread_count = unreadCount;
if (selectedChatId === conversationId) { if (selectedChatId === conversationId) {
emitter.emit(BUS_EVENTS.FETCH_LABEL_SUGGESTIONS);
emitter.emit(BUS_EVENTS.SCROLL_TO_MESSAGE); emitter.emit(BUS_EVENTS.SCROLL_TO_MESSAGE);
} }
} }
@ -225,7 +224,6 @@ export const mutations = {
const { messages, ...updates } = conversation; const { messages, ...updates } = conversation;
allConversations[index] = { ...selectedConversation, ...updates }; allConversations[index] = { ...selectedConversation, ...updates };
if (_state.selectedChatId === conversation.id) { if (_state.selectedChatId === conversation.id) {
emitter.emit(BUS_EVENTS.FETCH_LABEL_SUGGESTIONS);
emitter.emit(BUS_EVENTS.SCROLL_TO_MESSAGE); emitter.emit(BUS_EVENTS.SCROLL_TO_MESSAGE);
} }
} else { } else {

View File

@ -753,7 +753,6 @@ describe('#mutations', () => {
}; };
mutations[types.UPDATE_CONVERSATION](state, conversation); mutations[types.UPDATE_CONVERSATION](state, conversation);
expect(emitter.emit).toHaveBeenCalledWith('FETCH_LABEL_SUGGESTIONS');
expect(emitter.emit).toHaveBeenCalledWith('SCROLL_TO_MESSAGE'); expect(emitter.emit).toHaveBeenCalledWith('SCROLL_TO_MESSAGE');
}); });

View File

@ -4,7 +4,6 @@ export const BUS_EVENTS = {
FOCUS_CUSTOM_ATTRIBUTE: 'FOCUS_CUSTOM_ATTRIBUTE', FOCUS_CUSTOM_ATTRIBUTE: 'FOCUS_CUSTOM_ATTRIBUTE',
SCROLL_TO_MESSAGE: 'SCROLL_TO_MESSAGE', SCROLL_TO_MESSAGE: 'SCROLL_TO_MESSAGE',
MESSAGE_SENT: 'MESSAGE_SENT', MESSAGE_SENT: 'MESSAGE_SENT',
FETCH_LABEL_SUGGESTIONS: 'FETCH_LABEL_SUGGESTIONS',
ON_MESSAGE_LIST_SCROLL: 'ON_MESSAGE_LIST_SCROLL', ON_MESSAGE_LIST_SCROLL: 'ON_MESSAGE_LIST_SCROLL',
WEBSOCKET_DISCONNECT: 'WEBSOCKET_DISCONNECT', WEBSOCKET_DISCONNECT: 'WEBSOCKET_DISCONNECT',
WEBSOCKET_RECONNECT: 'WEBSOCKET_RECONNECT', WEBSOCKET_RECONNECT: 'WEBSOCKET_RECONNECT',