mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-01 19:48:08 +00:00
# Pull Request Template ## Description This PR includes the following changes: 1. Fixes a couple of UI issues. 2. Moves all styles to inline classes. 3. Migrates the `ConversationCard.vue` component from the Options API to the Composition API. ## Type of change - [x] Bug fix (non-breaking change which fixes an issue) ## How Has This Been Tested? ### Screenshots **Before** <img width="353" height="550" alt="image" src="https://github.com/user-attachments/assets/070c9bf1-6077-48d8-832d-79037b794f42" /> **After** <img width="353" height="541" alt="image" src="https://github.com/user-attachments/assets/c54bf69c-d175-45cf-a6fe-9c7ab6f66226" /> ## Checklist: - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my code - [ ] I have commented on my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] 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 - [ ] Any dependent changes have been merged and published in downstream modules
51 lines
1.6 KiB
Vue
51 lines
1.6 KiB
Vue
<script setup>
|
|
import { useI18n } from 'vue-i18n';
|
|
import { useStore } from 'dashboard/composables/store';
|
|
import { useAlert, useTrack } from 'dashboard/composables';
|
|
import { CAMPAIGN_TYPES } from 'shared/constants/campaign.js';
|
|
import { CAMPAIGNS_EVENTS } from 'dashboard/helper/AnalyticsHelper/events.js';
|
|
|
|
import WhatsAppCampaignForm from 'dashboard/components-next/Campaigns/Pages/CampaignPage/WhatsAppCampaign/WhatsAppCampaignForm.vue';
|
|
|
|
const emit = defineEmits(['close']);
|
|
|
|
const store = useStore();
|
|
const { t } = useI18n();
|
|
|
|
const addCampaign = async campaignDetails => {
|
|
try {
|
|
await store.dispatch('campaigns/create', campaignDetails);
|
|
|
|
useTrack(CAMPAIGNS_EVENTS.CREATE_CAMPAIGN, {
|
|
type: CAMPAIGN_TYPES.ONE_OFF,
|
|
});
|
|
|
|
useAlert(t('CAMPAIGN.WHATSAPP.CREATE.FORM.API.SUCCESS_MESSAGE'));
|
|
} catch (error) {
|
|
const errorMessage =
|
|
error?.response?.message ||
|
|
t('CAMPAIGN.WHATSAPP.CREATE.FORM.API.ERROR_MESSAGE');
|
|
useAlert(errorMessage);
|
|
}
|
|
};
|
|
|
|
const handleSubmit = campaignDetails => {
|
|
addCampaign(campaignDetails);
|
|
};
|
|
|
|
const handleClose = () => emit('close');
|
|
</script>
|
|
|
|
<template>
|
|
<div
|
|
class="w-[25rem] z-50 min-w-0 absolute top-10 ltr:right-0 rtl:left-0 bg-n-alpha-3 backdrop-blur-[100px] rounded-xl border border-n-weak shadow-md max-h-[80vh] overflow-y-auto"
|
|
>
|
|
<div class="p-6 flex flex-col gap-6">
|
|
<h3 class="text-base font-medium text-n-slate-12 flex-shrink-0">
|
|
{{ t(`CAMPAIGN.WHATSAPP.CREATE.TITLE`) }}
|
|
</h3>
|
|
<WhatsAppCampaignForm @submit="handleSubmit" @cancel="handleClose" />
|
|
</div>
|
|
</div>
|
|
</template>
|