mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-01 03:27:52 +00:00
These fixes are all auto generated and can be merged directly Fixes the following issues 1. Event used on components should be hypenated 2. Attribute orders in components 3. Use `unmounted` instead of `destroyed` 4. Add explicit `emits` declarations for components, autofixed [using this script](https://gist.github.com/scmmishra/6f549109b96400006bb69bbde392eddf) We ignore the top level v-if for now, we will fix it later
103 lines
2.6 KiB
Vue
103 lines
2.6 KiB
Vue
<script>
|
|
import { mapGetters } from 'vuex';
|
|
import { useAlert } from 'dashboard/composables';
|
|
import { emitter } from 'shared/helpers/mitt';
|
|
import EmailTranscriptModal from './EmailTranscriptModal.vue';
|
|
import ResolveAction from '../../buttons/ResolveAction.vue';
|
|
import {
|
|
CMD_MUTE_CONVERSATION,
|
|
CMD_SEND_TRANSCRIPT,
|
|
CMD_UNMUTE_CONVERSATION,
|
|
} from 'dashboard/helper/commandbar/events';
|
|
|
|
export default {
|
|
components: {
|
|
EmailTranscriptModal,
|
|
ResolveAction,
|
|
},
|
|
data() {
|
|
return {
|
|
showEmailActionsModal: false,
|
|
};
|
|
},
|
|
computed: {
|
|
...mapGetters({ currentChat: 'getSelectedChat' }),
|
|
},
|
|
mounted() {
|
|
emitter.on(CMD_MUTE_CONVERSATION, this.mute);
|
|
emitter.on(CMD_UNMUTE_CONVERSATION, this.unmute);
|
|
emitter.on(CMD_SEND_TRANSCRIPT, this.toggleEmailActionsModal);
|
|
},
|
|
unmounted() {
|
|
emitter.off(CMD_MUTE_CONVERSATION, this.mute);
|
|
emitter.off(CMD_UNMUTE_CONVERSATION, this.unmute);
|
|
emitter.off(CMD_SEND_TRANSCRIPT, this.toggleEmailActionsModal);
|
|
},
|
|
methods: {
|
|
mute() {
|
|
this.$store.dispatch('muteConversation', this.currentChat.id);
|
|
useAlert(this.$t('CONTACT_PANEL.MUTED_SUCCESS'));
|
|
},
|
|
unmute() {
|
|
this.$store.dispatch('unmuteConversation', this.currentChat.id);
|
|
useAlert(this.$t('CONTACT_PANEL.UNMUTED_SUCCESS'));
|
|
},
|
|
toggleEmailActionsModal() {
|
|
this.showEmailActionsModal = !this.showEmailActionsModal;
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<template>
|
|
<div class="relative flex items-center gap-2 actions--container">
|
|
<woot-button
|
|
v-if="!currentChat.muted"
|
|
v-tooltip="$t('CONTACT_PANEL.MUTE_CONTACT')"
|
|
variant="clear"
|
|
color-scheme="secondary"
|
|
icon="speaker-mute"
|
|
@click="mute"
|
|
/>
|
|
<woot-button
|
|
v-else
|
|
v-tooltip.left="$t('CONTACT_PANEL.UNMUTE_CONTACT')"
|
|
variant="clear"
|
|
color-scheme="secondary"
|
|
icon="speaker-1"
|
|
@click="unmute"
|
|
/>
|
|
<woot-button
|
|
v-tooltip="$t('CONTACT_PANEL.SEND_TRANSCRIPT')"
|
|
variant="clear"
|
|
color-scheme="secondary"
|
|
icon="share"
|
|
@click="toggleEmailActionsModal"
|
|
/>
|
|
<ResolveAction
|
|
:conversation-id="currentChat.id"
|
|
:status="currentChat.status"
|
|
/>
|
|
<EmailTranscriptModal
|
|
v-if="showEmailActionsModal"
|
|
:show="showEmailActionsModal"
|
|
:current-chat="currentChat"
|
|
@cancel="toggleEmailActionsModal"
|
|
/>
|
|
</div>
|
|
</template>
|
|
|
|
<style scoped lang="scss">
|
|
.more--button {
|
|
@apply items-center flex ml-2 rtl:ml-0 rtl:mr-2;
|
|
}
|
|
|
|
.dropdown-pane {
|
|
@apply -right-2 top-12;
|
|
}
|
|
|
|
.icon {
|
|
@apply mr-1 rtl:mr-0 rtl:ml-1 min-w-[1rem];
|
|
}
|
|
</style>
|