From 864471a21e3f520457bc37f32d81bf50636b01c6 Mon Sep 17 00:00:00 2001 From: Nithin David Thomas Date: Fri, 16 Apr 2021 20:31:07 +0530 Subject: [PATCH] feat: Create a new conversation from the contact panel (#2019) * Chore: Improve button component styles --- app/javascript/dashboard/api/contacts.js | 4 + .../dashboard/components/ui/WootButton.vue | 9 +- .../dashboard/i18n/locale/en/contact.json | 25 +++ .../contacts/components/ContactInfoPanel.vue | 2 +- .../conversation/contact/ContactInfo.vue | 53 ++++- .../conversation/contact/ConversationForm.vue | 210 ++++++++++++++++++ .../conversation/contact/NewConversation.vue | 51 +++++ .../store/modules/contactConversations.js | 29 +++ .../store/modules/contacts/actions.js | 20 ++ .../dashboard/store/modules/contacts/index.js | 1 + .../dashboard/store/modules/inboxes.js | 15 ++ .../contactConversations/actions.spec.js | 39 ++++ .../contactConversations/mutations.spec.js | 13 ++ .../dashboard/store/mutation-types.js | 1 + .../contacts/contactable_inboxes_service.rb | 2 +- .../v1/models/_contact_inbox.json.jbuilder | 4 +- 16 files changed, 469 insertions(+), 9 deletions(-) create mode 100644 app/javascript/dashboard/routes/dashboard/conversation/contact/ConversationForm.vue create mode 100644 app/javascript/dashboard/routes/dashboard/conversation/contact/NewConversation.vue diff --git a/app/javascript/dashboard/api/contacts.js b/app/javascript/dashboard/api/contacts.js index 6429c53d2..5dd0bcc57 100644 --- a/app/javascript/dashboard/api/contacts.js +++ b/app/javascript/dashboard/api/contacts.js @@ -14,6 +14,10 @@ class ContactAPI extends ApiClient { return axios.get(`${this.url}/${contactId}/conversations`); } + getContactableInboxes(contactId) { + return axios.get(`${this.url}/${contactId}/contactable_inboxes`); + } + search(search = '', page = 1) { return axios.get(`${this.url}/search?q=${search}&page=${page}`); } diff --git a/app/javascript/dashboard/components/ui/WootButton.vue b/app/javascript/dashboard/components/ui/WootButton.vue index 6820f1bc9..4df156f3a 100644 --- a/app/javascript/dashboard/components/ui/WootButton.vue +++ b/app/javascript/dashboard/components/ui/WootButton.vue @@ -13,7 +13,7 @@ > - + @@ -120,7 +152,7 @@ export default { @import '~dashboard/assets/scss/mixins'; .contact--profile { align-items: flex-start; - padding: var(--space-normal) var(--space-normal) var(--space-large); + padding: var(--space-normal) var(--space-normal); .user-thumbnail-box { margin-right: $space-normal; @@ -164,8 +196,21 @@ export default { font-size: $font-weight-normal; } } +.contact-actions { + margin: var(--space-small) 0; +} +.button.edit-contact { + margin-left: var(--space-two); + padding-left: var(--space-micro); +} -.edit-contact { - margin-left: var(--space-slab); +.button.new-message { + margin-right: var(--space-small); +} + +.contact-actions { + display: flex; + align-items: center; + width: 100%; } diff --git a/app/javascript/dashboard/routes/dashboard/conversation/contact/ConversationForm.vue b/app/javascript/dashboard/routes/dashboard/conversation/contact/ConversationForm.vue new file mode 100644 index 000000000..75e333a73 --- /dev/null +++ b/app/javascript/dashboard/routes/dashboard/conversation/contact/ConversationForm.vue @@ -0,0 +1,210 @@ +