diff --git a/app/javascript/dashboard/assets/scss/plugins/_multiselect.scss b/app/javascript/dashboard/assets/scss/plugins/_multiselect.scss
index 4e534bc99..3167b2085 100644
--- a/app/javascript/dashboard/assets/scss/plugins/_multiselect.scss
+++ b/app/javascript/dashboard/assets/scss/plugins/_multiselect.scss
@@ -21,7 +21,7 @@
.multiselect--active {
>.multiselect__tags {
- border-color: $color-woot;
+ border-color: var(--w-500);
}
}
@@ -75,16 +75,13 @@
}
&.multiselect__option--selected {
- background: var(--w-400);
- color: var(--white);
+ background: var(--w-75);
&.multiselect__option--highlight:hover {
- background: var(--w-600);
- color: var(--white);
+ background: var(--w-75);
&::after {
background: transparent;
- color: var(--white);
}
&::after:hover {
@@ -196,6 +193,7 @@
display: flex;
font-size: var(--font-size-small);
margin: 0;
+ max-height: 3.8rem;
padding: var(--space-smaller) var(--space-micro);
}
diff --git a/app/javascript/dashboard/components/widgets/InboxDropdownItem.stories.js b/app/javascript/dashboard/components/widgets/InboxDropdownItem.stories.js
new file mode 100644
index 000000000..b5bce1e41
--- /dev/null
+++ b/app/javascript/dashboard/components/widgets/InboxDropdownItem.stories.js
@@ -0,0 +1,37 @@
+import InboxDropdownItem from './InboxDropdownItem';
+
+export default {
+ title: 'Components/DropDowns/InboxDropdownItem',
+ component: InboxDropdownItem,
+ argTypes: {
+ name: {
+ defaultValue: 'My new inbox',
+ control: {
+ type: 'text',
+ },
+ },
+
+ inboxIdentifier: {
+ defaultValue: 'nithin@mail.com',
+ control: {
+ type: 'text',
+ },
+ },
+
+ channelType: {
+ defaultValue: 'email',
+ control: {
+ type: 'text',
+ },
+ },
+ },
+};
+
+const Template = (args, { argTypes }) => ({
+ props: Object.keys(argTypes),
+ components: { InboxDropdownItem },
+ template: '',
+});
+
+export const Banner = Template.bind({});
+Banner.args = {};
diff --git a/app/javascript/dashboard/components/widgets/InboxDropdownItem.vue b/app/javascript/dashboard/components/widgets/InboxDropdownItem.vue
new file mode 100644
index 000000000..e0bb102b2
--- /dev/null
+++ b/app/javascript/dashboard/components/widgets/InboxDropdownItem.vue
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+ {{ name }}
+
+
+ {{ inboxIdentifier || computedInboxType }}
+
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/helper/inbox.js b/app/javascript/dashboard/helper/inbox.js
index e2ff2ec41..1174fd45a 100644
--- a/app/javascript/dashboard/helper/inbox.js
+++ b/app/javascript/dashboard/helper/inbox.js
@@ -1,5 +1,55 @@
import { INBOX_TYPES } from 'shared/mixins/inboxMixin';
+export const getInboxSource = (type, phoneNumber, inbox) => {
+ switch (type) {
+ case INBOX_TYPES.WEB:
+ return inbox.website_url || '';
+
+ case INBOX_TYPES.TWILIO:
+ case INBOX_TYPES.WHATSAPP:
+ return phoneNumber || '';
+
+ case INBOX_TYPES.EMAIL:
+ return inbox.email || '';
+
+ default:
+ return '';
+ }
+};
+export const getReadableInboxByType = (type, phoneNumber) => {
+ switch (type) {
+ case INBOX_TYPES.WEB:
+ return 'livechat';
+
+ case INBOX_TYPES.FB:
+ return 'facebook';
+
+ case INBOX_TYPES.TWITTER:
+ return 'twitter';
+
+ case INBOX_TYPES.TWILIO:
+ return phoneNumber?.startsWith('whatsapp') ? 'whatsapp' : 'sms';
+
+ case INBOX_TYPES.WHATSAPP:
+ return 'whatsapp';
+
+ case INBOX_TYPES.API:
+ return 'api';
+
+ case INBOX_TYPES.EMAIL:
+ return 'email';
+
+ case INBOX_TYPES.TELEGRAM:
+ return 'telegram';
+
+ case INBOX_TYPES.LINE:
+ return 'line';
+
+ default:
+ return 'chat';
+ }
+};
+
export const getInboxClassByType = (type, phoneNumber) => {
switch (type) {
case INBOX_TYPES.WEB:
diff --git a/app/javascript/dashboard/i18n/locale/en/contact.json b/app/javascript/dashboard/i18n/locale/en/contact.json
index bfeb2c4a9..4d1736ed0 100644
--- a/app/javascript/dashboard/i18n/locale/en/contact.json
+++ b/app/javascript/dashboard/i18n/locale/en/contact.json
@@ -182,7 +182,8 @@
"LABEL": "To"
},
"INBOX": {
- "LABEL": "Inbox",
+ "LABEL": "Via Inbox",
+ "PLACEHOLDER": "Choose source inbox",
"ERROR": "Select an inbox"
},
"SUBJECT": {
diff --git a/app/javascript/dashboard/routes/dashboard/conversation/contact/ConversationForm.vue b/app/javascript/dashboard/routes/dashboard/conversation/contact/ConversationForm.vue
index 51862294e..562ed9b38 100644
--- a/app/javascript/dashboard/routes/dashboard/conversation/contact/ConversationForm.vue
+++ b/app/javascript/dashboard/routes/dashboard/conversation/contact/ConversationForm.vue
@@ -8,17 +8,43 @@
-