chore: Add editor toggle for API inbox (#5660)

This commit is contained in:
Pranav Raj S 2022-10-17 18:52:51 -07:00 committed by GitHub
parent 2423def8e8
commit e19c6d5671
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 28 additions and 7 deletions

View file

@ -64,7 +64,6 @@ export default {
}, },
computed: { computed: {
...mapGetters({ ...mapGetters({
accountId: 'getCurrentAccountId',
isFeatureEnabledonAccount: 'accounts/isFeatureEnabledonAccount', isFeatureEnabledonAccount: 'accounts/isFeatureEnabledonAccount',
}), }),
hasSecondaryMenu() { hasSecondaryMenu() {

View file

@ -11,7 +11,6 @@
size="small" size="small"
@click="toggleEmojiPicker" @click="toggleEmojiPicker"
/> />
<!-- ensure the same validations for attachment types are implemented in backend models as well -->
<file-upload <file-upload
ref="upload" ref="upload"
v-tooltip.top-end="$t('CONVERSATION.REPLYBOX.TIP_ATTACH_ICON')" v-tooltip.top-end="$t('CONVERSATION.REPLYBOX.TIP_ATTACH_ICON')"
@ -47,6 +46,16 @@
:title="$t('CONVERSATION.REPLYBOX.TIP_AUDIORECORDER_ICON')" :title="$t('CONVERSATION.REPLYBOX.TIP_AUDIORECORDER_ICON')"
@click="toggleAudioRecorder" @click="toggleAudioRecorder"
/> />
<woot-button
v-if="showEditorToggle"
v-tooltip.top-end="$t('CONVERSATION.REPLYBOX.TIP_FORMAT_ICON')"
icon="quote"
emoji="🖊️"
color-scheme="secondary"
variant="smooth"
size="small"
@click="$emit('toggle-editor')"
/>
<woot-button <woot-button
v-if="showAudioPlayStopButton" v-if="showAudioPlayStopButton"
:icon="audioRecorderPlayStopIcon" :icon="audioRecorderPlayStopIcon"
@ -184,7 +193,7 @@ export default {
type: Boolean, type: Boolean,
default: false, default: false,
}, },
isFormatMode: { showEditorToggle: {
type: Boolean, type: Boolean,
default: false, default: false,
}, },

View file

@ -109,10 +109,11 @@
:recording-audio-state="recordingAudioState" :recording-audio-state="recordingAudioState"
:is-recording-audio="isRecordingAudio" :is-recording-audio="isRecordingAudio"
:is-on-private-note="isOnPrivateNote" :is-on-private-note="isOnPrivateNote"
:is-format-mode="showRichContentEditor" :show-editor-toggle="isAPIInbox && !isOnPrivateNote"
:enable-multiple-file-upload="enableMultipleFileUpload" :enable-multiple-file-upload="enableMultipleFileUpload"
:has-whatsapp-templates="hasWhatsappTemplates" :has-whatsapp-templates="hasWhatsappTemplates"
@selectWhatsappTemplate="openWhatsappTemplateModal" @selectWhatsappTemplate="openWhatsappTemplateModal"
@toggle-editor="toggleRichContentEditor"
/> />
<whatsapp-templates <whatsapp-templates
:inbox-id="inbox.id" :inbox-id="inbox.id"
@ -230,6 +231,13 @@ export default {
return true; return true;
} }
if (this.isAPIInbox) {
const {
display_rich_content_editor: displayRichContentEditor = false,
} = this.uiSettings;
return displayRichContentEditor;
}
return false; return false;
}, },
assignedAgent: { assignedAgent: {
@ -365,7 +373,7 @@ export default {
); );
}, },
isRichEditorEnabled() { isRichEditorEnabled() {
return this.isAWebWidgetInbox || this.isAnEmailChannel || this.isAPIInbox; return this.isAWebWidgetInbox || this.isAnEmailChannel;
}, },
showAudioRecorder() { showAudioRecorder() {
return !this.isOnPrivateNote && this.showFileUpload; return !this.isOnPrivateNote && this.showFileUpload;
@ -511,6 +519,11 @@ export default {
document.removeEventListener('keydown', this.handleKeyEvents); document.removeEventListener('keydown', this.handleKeyEvents);
}, },
methods: { methods: {
toggleRichContentEditor() {
this.updateUISettings({
display_rich_content_editor: !this.showRichContentEditor,
});
},
getSavedDraftMessages() { getSavedDraftMessages() {
return LocalStorage.get(LOCAL_STORAGE_KEYS.DRAFT_MESSAGES) || {}; return LocalStorage.get(LOCAL_STORAGE_KEYS.DRAFT_MESSAGES) || {};
}, },

View file

@ -55,7 +55,7 @@ export const getters = {
const { const {
message_templates: whatsAppMessageTemplates, message_templates: whatsAppMessageTemplates,
additional_attributes: additionalAttributes, additional_attributes: additionalAttributes,
} = inbox; } = inbox || {};
const { message_templates: apiInboxMessageTemplates } = const { message_templates: apiInboxMessageTemplates } =
additionalAttributes || {}; additionalAttributes || {};
@ -63,7 +63,7 @@ export const getters = {
whatsAppMessageTemplates || apiInboxMessageTemplates; whatsAppMessageTemplates || apiInboxMessageTemplates;
// filtering out the whatsapp templates with media // filtering out the whatsapp templates with media
if (messagesTemplates) { if (messagesTemplates instanceof Array) {
return messagesTemplates.filter(template => { return messagesTemplates.filter(template => {
return !template.components.some( return !template.components.some(
i => i.format === 'IMAGE' || i.format === 'VIDEO' i => i.format === 'IMAGE' || i.format === 'VIDEO'