diff --git a/app/javascript/dashboard/assets/images/channels/sms.png b/app/javascript/dashboard/assets/images/channels/sms.png new file mode 100644 index 000000000..a8cfa6428 Binary files /dev/null and b/app/javascript/dashboard/assets/images/channels/sms.png differ diff --git a/app/javascript/dashboard/components/widgets/ChannelItem.vue b/app/javascript/dashboard/components/widgets/ChannelItem.vue index 37b82436e..8e9f1455e 100644 --- a/app/javascript/dashboard/components/widgets/ChannelItem.vue +++ b/app/javascript/dashboard/components/widgets/ChannelItem.vue @@ -37,8 +37,12 @@ src="~dashboard/assets/images/channels/website.png" /> +

{{ channel.name }} @@ -72,7 +76,7 @@ export default { if (key === 'email') { return this.enabledFeatures.channel_email; } - return ['website', 'twilio', 'api'].includes(key); + return ['website', 'twilio', 'api', 'whatsapp', 'sms'].includes(key); }, }, methods: { diff --git a/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json index 24463aac8..74203a4bb 100644 --- a/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json +++ b/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json @@ -126,6 +126,14 @@ "API": { "ERROR_MESSAGE": "We were not able to authenticate Twilio credentials, please try again" } + }, + "SMS": { + "TITLE": "SMS Channel via Twilio", + "DESC": "Start supporting your customers via SMS with Twilio integration." + }, + "WHATSAPP": { + "TITLE": "Whatsapp Channel via Twilio", + "DESC": "Start supporting your customers via Whatsapp with Twilio integration." }, "API_CHANNEL": { "TITLE": "API Channel", diff --git a/app/javascript/dashboard/routes/dashboard/settings/inbox/ChannelList.vue b/app/javascript/dashboard/routes/dashboard/settings/inbox/ChannelList.vue index ce19b918e..0ee3b8f03 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/inbox/ChannelList.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/inbox/ChannelList.vue @@ -42,7 +42,8 @@ export default { { key: 'website', name: 'Website' }, { key: 'facebook', name: 'Facebook' }, { key: 'twitter', name: 'Twitter' }, - { key: 'twilio', name: 'Twilio' }, + { key: 'whatsapp', name: 'WhatsApp via Twilio' }, + { key: 'sms', name: 'SMS via Twilio' }, { key: 'email', name: 'Email' }, { key: 'api', diff --git a/app/javascript/dashboard/routes/dashboard/settings/inbox/channel-factory.js b/app/javascript/dashboard/routes/dashboard/settings/inbox/channel-factory.js index 47c4e4e6e..0cf37f148 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/inbox/channel-factory.js +++ b/app/javascript/dashboard/routes/dashboard/settings/inbox/channel-factory.js @@ -1,17 +1,19 @@ import Facebook from './channels/Facebook'; import Website from './channels/Website'; import Twitter from './channels/Twitter'; -import Twilio from './channels/Twilio'; import Api from './channels/Api'; import Email from './channels/Email'; +import Sms from './channels/Sms'; +import Whatsapp from './channels/Whatsapp'; const channelViewList = { facebook: Facebook, website: Website, twitter: Twitter, - twilio: Twilio, api: Api, email: Email, + sms: Sms, + whatsapp: Whatsapp, }; export default { diff --git a/app/javascript/dashboard/routes/dashboard/settings/inbox/channels/Sms.vue b/app/javascript/dashboard/routes/dashboard/settings/inbox/channels/Sms.vue new file mode 100644 index 000000000..5b5c9f09c --- /dev/null +++ b/app/javascript/dashboard/routes/dashboard/settings/inbox/channels/Sms.vue @@ -0,0 +1,21 @@ + + + diff --git a/app/javascript/dashboard/routes/dashboard/settings/inbox/channels/Twilio.vue b/app/javascript/dashboard/routes/dashboard/settings/inbox/channels/Twilio.vue index e6d4056c1..28d132ab0 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/inbox/channels/Twilio.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/inbox/channels/Twilio.vue @@ -1,90 +1,72 @@ +