mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-11-03 20:48:07 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			91 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
export const INBOX_TYPES = {
 | 
						|
  WEB: 'Channel::WebWidget',
 | 
						|
  FB: 'Channel::FacebookPage',
 | 
						|
  TWITTER: 'Channel::TwitterProfile',
 | 
						|
  TWILIO: 'Channel::TwilioSms',
 | 
						|
  WHATSAPP: 'Channel::Whatsapp',
 | 
						|
  API: 'Channel::Api',
 | 
						|
  EMAIL: 'Channel::Email',
 | 
						|
  TELEGRAM: 'Channel::Telegram',
 | 
						|
  LINE: 'Channel::Line',
 | 
						|
  SMS: 'Channel::Sms',
 | 
						|
};
 | 
						|
 | 
						|
export default {
 | 
						|
  computed: {
 | 
						|
    channelType() {
 | 
						|
      return this.inbox.channel_type;
 | 
						|
    },
 | 
						|
    isAPIInbox() {
 | 
						|
      return this.channelType === INBOX_TYPES.API;
 | 
						|
    },
 | 
						|
    isATwitterInbox() {
 | 
						|
      return this.channelType === INBOX_TYPES.TWITTER;
 | 
						|
    },
 | 
						|
    isAFacebookInbox() {
 | 
						|
      return this.channelType === INBOX_TYPES.FB;
 | 
						|
    },
 | 
						|
    isAWebWidgetInbox() {
 | 
						|
      return this.channelType === INBOX_TYPES.WEB;
 | 
						|
    },
 | 
						|
    isATwilioChannel() {
 | 
						|
      return this.channelType === INBOX_TYPES.TWILIO;
 | 
						|
    },
 | 
						|
    isALineChannel() {
 | 
						|
      return this.channelType === INBOX_TYPES.LINE;
 | 
						|
    },
 | 
						|
    isAnEmailChannel() {
 | 
						|
      return this.channelType === INBOX_TYPES.EMAIL;
 | 
						|
    },
 | 
						|
    isATelegramChannel() {
 | 
						|
      return this.channelType === INBOX_TYPES.TELEGRAM;
 | 
						|
    },
 | 
						|
    isATwilioSMSChannel() {
 | 
						|
      const { medium: medium = '' } = this.inbox;
 | 
						|
      return this.isATwilioChannel && medium === 'sms';
 | 
						|
    },
 | 
						|
    isASmsInbox() {
 | 
						|
      return this.channelType === INBOX_TYPES.SMS || this.isATwilioSMSChannel;
 | 
						|
    },
 | 
						|
    isATwilioWhatsappChannel() {
 | 
						|
      const { medium: medium = '' } = this.inbox;
 | 
						|
      return this.isATwilioChannel && medium === 'whatsapp';
 | 
						|
    },
 | 
						|
    chatAdditionalAttributes() {
 | 
						|
      const { additional_attributes: additionalAttributes } = this.chat || {};
 | 
						|
      return additionalAttributes || {};
 | 
						|
    },
 | 
						|
    isTwitterInboxTweet() {
 | 
						|
      return this.chatAdditionalAttributes.type === 'tweet';
 | 
						|
    },
 | 
						|
    twilioBadge() {
 | 
						|
      return `${this.isATwilioSMSChannel ? 'sms' : 'whatsapp'}`;
 | 
						|
    },
 | 
						|
    twitterBadge() {
 | 
						|
      return `${this.isTwitterInboxTweet ? 'twitter-tweet' : 'twitter-dm'}`;
 | 
						|
    },
 | 
						|
    facebookBadge() {
 | 
						|
      return this.chatAdditionalAttributes.type || 'facebook';
 | 
						|
    },
 | 
						|
    inboxBadge() {
 | 
						|
      let badgeKey = '';
 | 
						|
      if (this.isATwitterInbox) {
 | 
						|
        badgeKey = this.twitterBadge;
 | 
						|
      } else if (this.isAFacebookInbox) {
 | 
						|
        badgeKey = this.facebookBadge;
 | 
						|
      } else if (this.isATwilioChannel) {
 | 
						|
        badgeKey = this.twilioBadge;
 | 
						|
      } else if (this.isAWhatsappChannel) {
 | 
						|
        badgeKey = 'whatsapp';
 | 
						|
      }
 | 
						|
      return badgeKey || this.channelType;
 | 
						|
    },
 | 
						|
    isAWhatsappChannel() {
 | 
						|
      return (
 | 
						|
        this.channelType === INBOX_TYPES.WHATSAPP ||
 | 
						|
        this.isATwilioWhatsappChannel
 | 
						|
      );
 | 
						|
    },
 | 
						|
  },
 | 
						|
};
 |