From 523769b7ed0397ec4cdf7276d7e78d6c3aa6f4ad Mon Sep 17 00:00:00 2001 From: Shivam Mishra Date: Mon, 5 Aug 2024 11:54:29 +0530 Subject: [PATCH] feat: install emitter as a plugin --- app/javascript/packs/application.js | 4 ++-- app/javascript/packs/survey.js | 4 ++-- app/javascript/packs/v3app.js | 4 ++-- app/javascript/packs/widget.js | 4 ++-- app/javascript/shared/helpers/mitt.js | 9 ++++++++- 5 files changed, 16 insertions(+), 9 deletions(-) diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js index 81e62b950..cc96532e4 100644 --- a/app/javascript/packs/application.js +++ b/app/javascript/packs/application.js @@ -14,7 +14,7 @@ import WootUiKit from '../dashboard/components'; import App from '../dashboard/App'; import i18n from '../dashboard/i18n'; import createAxios from '../dashboard/helper/APIHelper'; -import { emitter } from '../shared/helpers/mitt'; +import { EmitterPlugin } from '../shared/helpers/mitt'; import commonHelpers, { isJSONValid } from '../dashboard/helper/commons'; import router, { initalizeRouter } from '../dashboard/routes'; @@ -93,7 +93,7 @@ commonHelpers(); window.WootConstants = constants; window.axios = createAxios(axios); -Vue.prototype.$emitter = emitter; +Vue.use(EmitterPlugin); initializeChatwootEvents(); initializeAnalyticsEvents(); diff --git a/app/javascript/packs/survey.js b/app/javascript/packs/survey.js index fdcaec106..e6afa68de 100644 --- a/app/javascript/packs/survey.js +++ b/app/javascript/packs/survey.js @@ -3,7 +3,7 @@ import VueI18n from 'vue-i18n'; import App from '../survey/App.vue'; import i18n from '../survey/i18n'; import store from '../survey/store'; -import { emitter } from 'shared/helpers/mitt'; +import { EmitterPlugin } from 'shared/helpers/mitt'; Vue.use(VueI18n); @@ -13,7 +13,7 @@ const i18nConfig = new VueI18n({ }); // Event Bus -Vue.prototype.$emitter = emitter; +Vue.use(EmitterPlugin); Vue.config.productionTip = false; diff --git a/app/javascript/packs/v3app.js b/app/javascript/packs/v3app.js index d5180675c..ff83fd156 100644 --- a/app/javascript/packs/v3app.js +++ b/app/javascript/packs/v3app.js @@ -13,7 +13,7 @@ import App from '../v3/App.vue'; import router, { initalizeRouter } from '../v3/views/index'; import store from '../v3/store'; import FluentIcon from 'shared/components/FluentIcon/DashboardIcon'; -import { emitter } from '../shared/helpers/mitt'; +import { EmitterPlugin } from '../shared/helpers/mitt'; Vue.config.env = process.env; @@ -45,7 +45,7 @@ Vue.use(VueRouter); Vue.use(VueI18n); Vue.use(AnalyticsPlugin); -Vue.prototype.$emitter = emitter; +Vue.use(EmitterPlugin); Vue.component('fluent-icon', FluentIcon); const i18nConfig = new VueI18n({ locale: 'en', messages: i18n }); diff --git a/app/javascript/packs/widget.js b/app/javascript/packs/widget.js index a6c873c55..c6d34afb1 100644 --- a/app/javascript/packs/widget.js +++ b/app/javascript/packs/widget.js @@ -12,7 +12,7 @@ import { } from 'shared/helpers/Validators'; import router from '../widget/router'; import { directive as onClickaway } from 'vue-clickaway'; -import { emitter } from 'shared/helpers/mitt'; +import { EmitterPlugin } from 'shared/helpers/mitt'; import { domPurifyConfig } from '../shared/helpers/HTMLSanitizer'; const PhoneInput = () => import('../widget/components/Form/PhoneInput'); @@ -45,7 +45,7 @@ Vue.use(VueFormulate, { }, }); // Event Bus -Vue.prototype.$emitter = emitter; +Vue.use(EmitterPlugin); Vue.config.productionTip = false; diff --git a/app/javascript/shared/helpers/mitt.js b/app/javascript/shared/helpers/mitt.js index e2e6d3907..f36724e00 100644 --- a/app/javascript/shared/helpers/mitt.js +++ b/app/javascript/shared/helpers/mitt.js @@ -1,3 +1,10 @@ import mitt from 'mitt'; const emitter = mitt(); -export { emitter }; + +const EmitterPlugin = { + install(Vue) { + Vue.prototype.$emitter = emitter; + }, +}; + +export { emitter, EmitterPlugin };