mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-01 11:37:58 +00:00
This PR introduces a new channel type for voice conversations. ref: #11481 ## Changes - Add database migration for channel_voice table with phone_number and provider_config - Create Channel::Voice model with E.164 phone number validation and Twilio config validation - Add voice channel association to Account model - Extend inbox helpers and types to support voice channels - Add voice channel setup UI with Twilio configuration form - Include voice channel in channel factory and list components - Add API routes and store actions for voice channel creation - Add comprehensive translations for voice channel management --------- Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com> Co-authored-by: iamsivin <iamsivin@gmail.com>
39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
import { computed } from 'vue';
|
|
|
|
export function useChannelIcon(inbox) {
|
|
const channelTypeIconMap = {
|
|
'Channel::Api': 'i-ri-cloudy-fill',
|
|
'Channel::Email': 'i-ri-mail-fill',
|
|
'Channel::FacebookPage': 'i-ri-messenger-fill',
|
|
'Channel::Line': 'i-ri-line-fill',
|
|
'Channel::Sms': 'i-ri-chat-1-fill',
|
|
'Channel::Telegram': 'i-ri-telegram-fill',
|
|
'Channel::TwilioSms': 'i-ri-chat-1-fill',
|
|
'Channel::TwitterProfile': 'i-ri-twitter-x-fill',
|
|
'Channel::WebWidget': 'i-ri-global-fill',
|
|
'Channel::Whatsapp': 'i-ri-whatsapp-fill',
|
|
'Channel::Instagram': 'i-ri-instagram-fill',
|
|
'Channel::Voice': 'i-ri-phone-fill',
|
|
};
|
|
|
|
const providerIconMap = {
|
|
microsoft: 'i-ri-microsoft-fill',
|
|
google: 'i-ri-google-fill',
|
|
};
|
|
|
|
const channelIcon = computed(() => {
|
|
const type = inbox.channel_type;
|
|
let icon = channelTypeIconMap[type];
|
|
|
|
if (type === 'Channel::Email' && inbox.provider) {
|
|
if (Object.keys(providerIconMap).includes(inbox.provider)) {
|
|
icon = providerIconMap[inbox.provider];
|
|
}
|
|
}
|
|
|
|
return icon ?? 'i-ri-global-fill';
|
|
});
|
|
|
|
return channelIcon;
|
|
}
|