From b474929f5ef68139dfb7977aa7e523d76e47cd3d Mon Sep 17 00:00:00 2001 From: Fayaz Ahmed Date: Fri, 31 May 2024 15:50:36 +0530 Subject: [PATCH] chore: Replace eventBus with mitt.js [CW-3275] (#9539) # Replace the deprecated `eventBus` with mitt.js ## Description Since eventBus and it's respective methods are deprecated and removed from all future releases of vue, this was blocking us from migrating. This PR replaces eventBus with [mitt](https://github.com/developit/mitt). I have created a wrapper mitt.js to simulate the same old event names so it's backwards compatible, without making a lot of changes. Fixes # (issue) ## Type of change Please delete options that are not relevant. - [x] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality not to work as expected) - [ ] This change requires a documentation update ## How Has This Been Tested? 1. Made sure all the places we're listening to bus events are working as expected. 2. Respective specsf or the events from mitt. ## Checklist: - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my code - [x] I have commented on my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] 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 - [x] Any dependent changes have been merged and published in downstream modules --- .../dashboard/components/ChatList.vue | 8 +++--- app/javascript/dashboard/components/Code.vue | 4 ++- .../dashboard/components/CustomAttribute.vue | 4 +-- .../dashboard/components/MaskedText.vue | 4 ++- .../components/NetworkNotification.vue | 2 +- .../dashboard/components/SidemenuIcon.vue | 2 +- .../components/SnackbarContainer.vue | 6 +++-- .../components/buttons/ResolveAction.vue | 8 +++--- .../components/ui/DatePicker/DatePicker.vue | 6 ++--- .../components/widgets/AIAssistanceButton.vue | 2 +- .../components/widgets/WootWriter/Editor.vue | 10 +++++-- .../widgets/conversation/Message.vue | 6 ++--- .../widgets/conversation/MessagesView.vue | 10 +++---- .../widgets/conversation/MoreActions.vue | 12 ++++----- .../widgets/conversation/ReplyBox.vue | 22 +++++++++------ .../widgets/conversation/bubble/ReplyTo.vue | 4 ++- .../conversationBulkActions/Index.vue | 24 ++++++++++++----- .../conversation/specs/MoreActions.spec.js | 27 ++++++++++++------- app/javascript/dashboard/composables/index.js | 3 ++- .../dashboard/helper/actionCable.js | 7 ++--- app/javascript/dashboard/helper/pushHelper.js | 5 ++-- .../dashboard/helper/scriptHelpers.js | 7 ++--- .../dashboard/routes/dashboard/Dashboard.vue | 4 +-- .../dashboard/commands/bulkActionsHotKeys.js | 5 ++-- .../dashboard/commands/commandBarActions.js | 13 ++++----- .../dashboard/commands/conversationHotKeys.js | 3 ++- .../routes/dashboard/commands/inboxHotKeys.js | 11 ++++---- .../conversation/ConversationView.vue | 2 +- .../conversation/contact/ContactInfo.vue | 5 +++- .../components/HelpCenterLayout.vue | 4 +-- .../routes/dashboard/inbox/InboxView.vue | 2 +- .../inbox/components/InboxItemHeader.vue | 4 +-- .../dashboard/settings/agents/AddAgent.vue | 5 ++-- .../dashboard/settings/agents/EditAgent.vue | 5 ++-- .../dashboard/settings/agents/Index.vue | 11 ++++---- .../dashboard/settings/canned/Index.vue | 12 ++++++--- .../dashboard/settings/inbox/AddAgents.vue | 4 ++- .../routes/dashboard/settings/inbox/Index.vue | 13 +++------ .../settings/reports/LiveReports.vue | 2 +- .../store/modules/conversations/index.js | 9 ++++--- .../specs/conversations/mutations.spec.js | 16 ++++++++--- app/javascript/dashboard/store/utils/api.js | 9 ++++--- app/javascript/packs/application.js | 5 +++- app/javascript/packs/survey.js | 3 ++- app/javascript/packs/widget.js | 4 +-- .../helpers/BaseActionCableConnector.js | 3 ++- app/javascript/shared/helpers/mitt.js | 3 +++ .../shared/helpers/specs/mitt.spec.js | 25 +++++++++++++++++ app/javascript/shared/mixins/alertMixin.js | 4 ++- .../v3/views/auth/password/Edit.vue | 8 +++--- .../v3/views/auth/reset/password/Index.vue | 9 ++++--- app/javascript/v3/views/login/Index.vue | 9 ++++--- app/javascript/widget/App.vue | 15 ++++++----- .../widget/components/AgentMessage.vue | 3 ++- app/javascript/widget/components/Banner.vue | 3 ++- .../widget/components/ChatAttachment.vue | 6 ++--- .../widget/components/ChatFooter.vue | 4 +-- app/javascript/widget/helpers/actionCable.js | 3 ++- package.json | 3 ++- yarn.lock | 5 ++++ 60 files changed, 276 insertions(+), 161 deletions(-) create mode 100644 app/javascript/shared/helpers/mitt.js create mode 100644 app/javascript/shared/helpers/specs/mitt.spec.js diff --git a/app/javascript/dashboard/components/ChatList.vue b/app/javascript/dashboard/components/ChatList.vue index 3e251f42b..eb410f7d5 100644 --- a/app/javascript/dashboard/components/ChatList.vue +++ b/app/javascript/dashboard/components/ChatList.vue @@ -514,14 +514,14 @@ export default { this.$store.dispatch('campaigns/get'); } - bus.$on('fetch_conversation_stats', () => { + this.$emitter.on('fetch_conversation_stats', () => { this.$store.dispatch('conversationStats/get', this.conversationFilters); }); - bus.$on(CMD_SNOOZE_CONVERSATION, this.onCmdSnoozeConversation); + this.$emitter.on(CMD_SNOOZE_CONVERSATION, this.onCmdSnoozeConversation); }, beforeDestroy() { - bus.$off(CMD_SNOOZE_CONVERSATION, this.onCmdSnoozeConversation); + this.$emitter.off(CMD_SNOOZE_CONVERSATION, this.onCmdSnoozeConversation); }, methods: { updateVirtualListProps(key, value) { @@ -742,7 +742,7 @@ export default { updateAssigneeTab(selectedTab) { if (this.activeAssigneeTab !== selectedTab) { this.resetBulkActions(); - bus.$emit('clearSearchInput'); + this.$emitter.emit('clearSearchInput'); this.activeAssigneeTab = selectedTab; if (!this.currentPage) { this.fetchConversations(); diff --git a/app/javascript/dashboard/components/Code.vue b/app/javascript/dashboard/components/Code.vue index 269311c2d..d8f609e29 100644 --- a/app/javascript/dashboard/components/Code.vue +++ b/app/javascript/dashboard/components/Code.vue @@ -25,8 +25,10 @@