chatwoot/app/javascript/dashboard/components-next/Contacts
Sojan Jose 7fe94dc1a2
feat(voice): Call button on Contacts with inbox picker (#12218)
## Description
This introduces a reusable Call button used in the Contacts details
header (between Block contact and Send message) and
in the conversation contact panel. The button shows only when the
account has at least one Voice inbox and the contact
has a phone number. If multiple Voice inboxes are present, clicking
opens a picker modal; otherwise, a “Calling is under
development” toast is shown

> Actual wiring to functionality will available in follow up PRs

references: #11602 , #11481 

## Screens 

<img width="250" alt="Screenshot 2025-08-18 at 8 33 02 PM"
src="https://github.com/user-attachments/assets/d7a09a9d-8eff-4461-a75f-27854540c2a0"
/>
<img width="250" alt="Screenshot 2025-08-18 at 8 32 31 PM"
src="https://github.com/user-attachments/assets/682ae66e-dd5f-4750-9c30-0a210e120250"
/>
<img width="250" alt="Screenshot 2025-08-18 at 8 32 40 PM"
src="https://github.com/user-attachments/assets/7de0d753-eefc-4b7f-942b-ecca1964fcd7"
/>


## Test Cases

- Enable voice feature and create inboxes and test the cases for both
contact details view and contact card view in conversation
  - Details: 0 Voice inboxes → no Call button.
- Details: 1+ Voice inboxes, no phone number for contact → no Call
button.
- Details: 1 Voice inbox + phone number for contact → button visible;
click → toast.
- Details: >1 Voice inboxes + phone number for contact → click → modal →
choose → toast.

---------

Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
2025-08-19 15:42:01 +05:30
..
ContactLabels chore: Adds the ability to remove labels from label card (#10591) 2024-12-17 18:43:36 +05:30
ContactsCard chore: Replace Thumbnail with Avatar in conversation card (#12112) 2025-08-07 09:50:24 +05:30
ContactsForm fix: Contact name editing did not allow spaces (#11931) 2025-07-14 10:27:50 +05:30
ContactsHeader chore: Optimize contact page for smaller displays (#12183) 2025-08-14 19:07:20 +05:30
ContactsSidebar chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
EmptyState chore: Update contact empty state data (#12207) 2025-08-18 12:06:03 +05:30
Pages feat: Show active Contacts (#8243) 2025-06-04 21:52:13 +05:30
ContactsDetailsLayout.vue feat(voice): Call button on Contacts with inbox picker (#12218) 2025-08-19 15:42:01 +05:30
ContactsListLayout.vue chore: Optimize contact page for smaller displays (#12183) 2025-08-14 19:07:20 +05:30
VoiceCallButton.vue feat(voice): Call button on Contacts with inbox picker (#12218) 2025-08-19 15:42:01 +05:30