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 @@ + + + + + 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 @@
-