Skip to content

Commit e0a8653

Browse files
committed
fix: add shortcut for customer side also
1 parent d724b4c commit e0a8653

File tree

2 files changed

+18
-8
lines changed

2 files changed

+18
-8
lines changed

desk/src/pages/TicketCustomer.vue

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,11 @@
2929
<TicketCustomerTemplateFields v-if="isMobileView" />
3030

3131
<TicketConversation class="grow" />
32-
<div class="m-5">
32+
<div
33+
class="m-5"
34+
@keydown.ctrl.enter.capture.stop="sendEmail"
35+
@keydown.meta.enter.capture.stop="sendEmail"
36+
>
3337
<TicketTextEditor
3438
v-if="showEditor"
3539
ref="editor"
@@ -46,7 +50,8 @@
4650
theme="gray"
4751
variant="solid"
4852
:disabled="$refs.editor.editor.isEmpty || send.loading"
49-
@click="() => send.submit()"
53+
:loading="send.loading"
54+
@click="sendEmail"
5055
/>
5156
</template>
5257
</TicketTextEditor>
@@ -61,7 +66,7 @@
6166

6267
<script setup lang="ts">
6368
import { computed, onMounted, onUnmounted, provide, ref } from "vue";
64-
import { createResource, Button, Breadcrumbs } from "frappe-ui";
69+
import { createResource, Button, Breadcrumbs, confirmDialog } from "frappe-ui";
6570
import { Icon } from "@iconify/vue";
6671
import { useError } from "@/composables/error";
6772
import TicketConversation from "./ticket/TicketConversation.vue";
@@ -70,14 +75,12 @@ import TicketFeedback from "./ticket/TicketFeedback.vue";
7075
import TicketTextEditor from "./ticket/TicketTextEditor.vue";
7176
import { ITicket } from "./ticket/symbols";
7277
import { useRouter } from "vue-router";
73-
import { createToast } from "@/utils";
78+
import { createToast, isContentEmpty, setupCustomActions } from "@/utils";
7479
import { socket } from "@/socket";
7580
import { LayoutHeader } from "@/components";
7681
import TicketCustomerSidebar from "@/components/ticket/TicketCustomerSidebar.vue";
7782
import { useScreenSize } from "@/composables/screen";
7883
import { useConfigStore } from "@/stores/config";
79-
import { confirmDialog } from "frappe-ui";
80-
import { setupCustomActions } from "@/utils";
8184
interface P {
8285
ticketId: string;
8386
}
@@ -142,6 +145,13 @@ function updateField(name, value, callback = () => {}) {
142145
callback();
143146
}
144147
148+
function sendEmail() {
149+
if (isContentEmpty(editorContent.value) || send.loading) {
150+
return;
151+
}
152+
send.submit();
153+
}
154+
145155
function updateTicket(fieldname: string, value: string) {
146156
createResource({
147157
url: "frappe.client.set_value",

desk/src/pages/ticket/TicketCommunication.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
</Tooltip>
1212
</div>
1313
</div>
14-
<!-- eslint-disable-next-line vue/no-v-html -->
15-
<div class="prose-f" v-html="sanitize(content)"></div>
14+
15+
<EmailContent :content="sanitize(content)" />
1616
<div class="flex flex-wrap gap-2 mb-2">
1717
<AttachmentItem
1818
v-for="a in attachments"

0 commit comments

Comments
 (0)