From 3b5f5b41ad024de357c7703ebe0d254e7f634da4 Mon Sep 17 00:00:00 2001 From: Fayaz Ahmed Date: Wed, 28 Aug 2024 00:53:18 +0530 Subject: [PATCH] chore: Replace campaign mixin with composable [CW-3463] (#9987) # Pull Request Template ## Description Repalces campaignMixin and its usage with the new useCampaign mixin Fixes https://linear.app/chatwoot/issue/CW-3463/rewrite-campaignmixin-mixin-to-a-composable --------- Co-authored-by: Shivam Mishra Co-authored-by: Muhsin Keloth --- .../settings/campaigns/AddCampaign.vue | 6 +-- .../dashboard/settings/campaigns/Campaign.vue | 7 ++- .../settings/campaigns/CampaignsTable.vue | 10 ++-- .../settings/campaigns/EditCampaign.vue | 6 +-- .../dashboard/settings/campaigns/Index.vue | 7 ++- .../composables/specs/useCampaign.spec.js | 47 +++++++++++++++++++ .../shared/composables/useCampaign.js | 43 +++++++++++++++++ app/javascript/shared/mixins/campaignMixin.js | 19 -------- .../shared/mixins/specs/campaignMixin.spec.js | 34 -------------- 9 files changed, 111 insertions(+), 68 deletions(-) create mode 100644 app/javascript/shared/composables/specs/useCampaign.spec.js create mode 100644 app/javascript/shared/composables/useCampaign.js delete mode 100644 app/javascript/shared/mixins/campaignMixin.js delete mode 100644 app/javascript/shared/mixins/specs/campaignMixin.spec.js diff --git a/app/javascript/dashboard/routes/dashboard/settings/campaigns/AddCampaign.vue b/app/javascript/dashboard/routes/dashboard/settings/campaigns/AddCampaign.vue index 8c0dc7b5c..ee2846725 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/campaigns/AddCampaign.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/campaigns/AddCampaign.vue @@ -4,7 +4,7 @@ import { useVuelidate } from '@vuelidate/core'; import { required } from '@vuelidate/validators'; import { useAlert } from 'dashboard/composables'; import WootMessageEditor from 'dashboard/components/widgets/WootWriter/Editor.vue'; -import campaignMixin from 'shared/mixins/campaignMixin'; +import { useCampaign } from 'shared/composables/useCampaign'; import WootDateTimePicker from 'dashboard/components/ui/DateTimePicker.vue'; import { URLPattern } from 'urlpattern-polyfill'; import { CAMPAIGNS_EVENTS } from '../../../../helper/AnalyticsHelper/events'; @@ -14,9 +14,9 @@ export default { WootDateTimePicker, WootMessageEditor, }, - mixins: [campaignMixin], setup() { - return { v$: useVuelidate() }; + const { campaignType, isOngoingType, isOneOffType } = useCampaign(); + return { v$: useVuelidate(), campaignType, isOngoingType, isOneOffType }; }, data() { return { diff --git a/app/javascript/dashboard/routes/dashboard/settings/campaigns/Campaign.vue b/app/javascript/dashboard/routes/dashboard/settings/campaigns/Campaign.vue index 0e8dea361..7aa56362e 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/campaigns/Campaign.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/campaigns/Campaign.vue @@ -1,7 +1,7 @@