diff --git a/app/javascript/dashboard/components-next/Contacts/ContactLabels/ContactLabels.vue b/app/javascript/dashboard/components-next/Contacts/ContactLabels/ContactLabels.vue index 2078b2290..6f1c5f11a 100644 --- a/app/javascript/dashboard/components-next/Contacts/ContactLabels/ContactLabels.vue +++ b/app/javascript/dashboard/components-next/Contacts/ContactLabels/ContactLabels.vue @@ -1,10 +1,10 @@ - - - - - - {}" - @show-contact="() => {}" - /> - - - - - - {}" - @update-contact="() => {}" - @show-contact="() => {}" - /> - - - - - - {}" - @update-contact="() => {}" - @show-contact="() => {}" - /> - - - - - - {}" - @update-contact="() => {}" - @show-contact="() => {}" - /> - - - - diff --git a/app/javascript/dashboard/components-next/Contacts/ContactsForm/ContactMergeForm.vue b/app/javascript/dashboard/components-next/Contacts/ContactsForm/ContactMergeForm.vue new file mode 100644 index 000000000..dc38c4649 --- /dev/null +++ b/app/javascript/dashboard/components-next/Contacts/ContactsForm/ContactMergeForm.vue @@ -0,0 +1,112 @@ + + + + + + + + {{ t('CONTACTS_LAYOUT.SIDEBAR.MERGE.PRIMARY') }} + + + {{ t('CONTACTS_LAYOUT.SIDEBAR.MERGE.PRIMARY_HELP_LABEL') }} + + + emit('update:primaryContactId', value)" + @search="query => emit('search', query)" + /> + + + + + + + + + + + {{ t('CONTACTS_LAYOUT.SIDEBAR.MERGE.PARENT') }} + + + {{ t('CONTACTS_LAYOUT.SIDEBAR.MERGE.PARENT_HELP_LABEL') }} + + + + + + + {{ selectedContact.name }} + + + {{ selectedContact.email }} + + + + + + diff --git a/app/javascript/dashboard/components-next/Contacts/ContactsForm/ContactsForm.story.vue b/app/javascript/dashboard/components-next/Contacts/ContactsForm/ContactsForm.story.vue deleted file mode 100644 index 35d36837f..000000000 --- a/app/javascript/dashboard/components-next/Contacts/ContactsForm/ContactsForm.story.vue +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/javascript/dashboard/components-next/Contacts/ContactsForm/story/ContactMergeForm.story.vue b/app/javascript/dashboard/components-next/Contacts/ContactsForm/story/ContactMergeForm.story.vue new file mode 100644 index 000000000..dbf22dadd --- /dev/null +++ b/app/javascript/dashboard/components-next/Contacts/ContactsForm/story/ContactMergeForm.story.vue @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/javascript/dashboard/components-next/Contacts/ContactsForm/story/ContactsForm.story.vue b/app/javascript/dashboard/components-next/Contacts/ContactsForm/story/ContactsForm.story.vue index 4be69380c..306df1df0 100644 --- a/app/javascript/dashboard/components-next/Contacts/ContactsForm/story/ContactsForm.story.vue +++ b/app/javascript/dashboard/components-next/Contacts/ContactsForm/story/ContactsForm.story.vue @@ -1,6 +1,6 @@ + + + + + + + + + {{ writtenBy }} + {{ t('CONTACTS_LAYOUT.SIDEBAR.NOTES.WROTE') }} + {{ dynamicTime(note.createdAt) }} + + + + + + + + diff --git a/app/javascript/dashboard/components-next/Contacts/ContactsSidebar/components/story/ContactNoteItem.story.vue b/app/javascript/dashboard/components-next/Contacts/ContactsSidebar/components/story/ContactNoteItem.story.vue new file mode 100644 index 000000000..0dbf8bf01 --- /dev/null +++ b/app/javascript/dashboard/components-next/Contacts/ContactsSidebar/components/story/ContactNoteItem.story.vue @@ -0,0 +1,39 @@ + + + + + + + + + + + diff --git a/app/javascript/dashboard/components-next/Contacts/ContactsSidebar/components/story/fixtures.js b/app/javascript/dashboard/components-next/Contacts/ContactsSidebar/components/story/fixtures.js new file mode 100644 index 000000000..440ad95df --- /dev/null +++ b/app/javascript/dashboard/components-next/Contacts/ContactsSidebar/components/story/fixtures.js @@ -0,0 +1,69 @@ +export default [ + { + id: 12, + content: + 'This tutorial will show you how to use Chatwoot and, hence, ensure you practice effective customer communication. We will explain in detail the following:\n\n* Step-by-step setup of your account, with illustrative screenshots.\n\n* An in-depth explanation of all the core features of Chatwoot.\n\n* Get your account up and running by the end of this tutorial.\n\n* Basic concepts of customer communication.', + accountId: null, + contactId: null, + user: { + id: 30, + account_id: 2, + availability_status: 'offline', + auto_offline: true, + confirmed: true, + email: 'bruce@paperlayer.test', + available_name: 'Bruce', + name: 'Bruce', + role: 'administrator', + thumbnail: + 'https://sivin-tunnel.chatwoot.dev/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBJZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--515dbb35e9ba3c36d14f4c4b77220a675513c1fb/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBTU0lJYW5CbkJqb0dSVlE2RTNKbGMybDZaVjkwYjE5bWFXeHNXd2RwQWZvdyIsImV4cCI6bnVsbCwicHVyIjoidmFyaWF0aW9uIn19--df796c2af3c0153e55236c2f3cf3a199ac2cb6f7/2.jpg', + custom_role_id: null, + }, + createdAt: 1730786556, + updatedAt: 1730786556, + }, + { + id: 10, + content: + 'We discussed a couple of things:\n\n* Product offering and how it can be useful to talk with people.\n\n* They’ll reach out to us after an internal review.', + accountId: null, + contactId: null, + user: { + id: 1, + account_id: 2, + availability_status: 'online', + auto_offline: false, + confirmed: true, + email: 'hillary@chatwoot.com', + available_name: 'Hillary', + name: 'Hillary', + role: 'administrator', + thumbnail: '', + custom_role_id: null, + }, + createdAt: 1730782566, + updatedAt: 1730782566, + }, + { + id: 9, + content: + 'We discussed a couple of things:\n\n* Product offering and how it can be useful to talk with people.\n\n* They’ll reach out to us after an internal review.', + accountId: null, + contactId: null, + user: { + id: 1, + account_id: 2, + availability_status: 'online', + auto_offline: false, + confirmed: true, + email: 'john@chatwoot.com', + available_name: 'John', + name: 'John', + role: 'administrator', + thumbnail: '', + custom_role_id: null, + }, + createdAt: 1730782564, + updatedAt: 1730782564, + }, +]; diff --git a/app/javascript/dashboard/components-next/CustomAttributes/CheckboxAttribute.vue b/app/javascript/dashboard/components-next/CustomAttributes/CheckboxAttribute.vue index 896c1741d..d5ecc3aab 100644 --- a/app/javascript/dashboard/components-next/CustomAttributes/CheckboxAttribute.vue +++ b/app/javascript/dashboard/components-next/CustomAttributes/CheckboxAttribute.vue @@ -1,8 +1,10 @@ - @@ -28,13 +32,7 @@ const handleChange = event => { 'justify-end': !isEditingView, }" > - - + + + + + + + + {{ t('LABEL.TAG_BUTTON') }} + + + + + + + + + diff --git a/app/javascript/dashboard/components-next/label/LabelItem.vue b/app/javascript/dashboard/components-next/label/LabelItem.vue new file mode 100644 index 000000000..b96b9b368 --- /dev/null +++ b/app/javascript/dashboard/components-next/label/LabelItem.vue @@ -0,0 +1,22 @@ + + + + + + + {{ label.title }} + + + diff --git a/app/javascript/dashboard/components-next/label/story/AddLabel.story.vue b/app/javascript/dashboard/components-next/label/story/AddLabel.story.vue new file mode 100644 index 000000000..ea6466feb --- /dev/null +++ b/app/javascript/dashboard/components-next/label/story/AddLabel.story.vue @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + diff --git a/app/javascript/dashboard/components-next/label/story/Label.story.vue b/app/javascript/dashboard/components-next/label/story/Label.story.vue new file mode 100644 index 000000000..5319d56ae --- /dev/null +++ b/app/javascript/dashboard/components-next/label/story/Label.story.vue @@ -0,0 +1,21 @@ + + + + + + + + + + + + + diff --git a/app/javascript/dashboard/components-next/label/story/fixtures.js b/app/javascript/dashboard/components-next/label/story/fixtures.js new file mode 100644 index 000000000..ba61d45bf --- /dev/null +++ b/app/javascript/dashboard/components-next/label/story/fixtures.js @@ -0,0 +1,68 @@ +export const label = { + id: 1, + title: 'delivery', + color: '#A2FDD5', +}; + +export const labelMenuItems = [ + { + label: 'delivery', + value: 3, + thumbnail: { + name: 'delivery', + color: '#A2FDD5', + }, + isSelected: true, + action: 'addLabel', + }, + { + label: 'lead', + value: 6, + thumbnail: { + name: 'lead', + color: '#F161C8', + }, + isSelected: false, + action: 'addLabel', + }, + { + label: 'ops-handover', + value: 4, + thumbnail: { + name: 'ops-handover', + color: '#A53326', + }, + isSelected: false, + action: 'addLabel', + }, + { + label: 'billing', + value: 1, + thumbnail: { + name: 'billing', + color: '#28AD21', + }, + isSelected: false, + action: 'addLabel', + }, + { + label: 'premium-customer', + value: 5, + thumbnail: { + name: 'premium-customer', + color: '#6FD4EF', + }, + isSelected: false, + action: 'addLabel', + }, + { + label: 'software', + value: 2, + thumbnail: { + name: 'software', + color: '#8F6EF2', + }, + isSelected: false, + action: 'addLabel', + }, +]; diff --git a/app/javascript/dashboard/components-next/switch/Switch.story.vue b/app/javascript/dashboard/components-next/switch/Switch.story.vue new file mode 100644 index 000000000..9e4f7ae63 --- /dev/null +++ b/app/javascript/dashboard/components-next/switch/Switch.story.vue @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + Default: + + + + + Checked: + + + + + + + + + Last change: {{ lastChange }} + + + + + + + + + + diff --git a/app/javascript/dashboard/components-next/switch/Switch.vue b/app/javascript/dashboard/components-next/switch/Switch.vue new file mode 100644 index 000000000..e8f409c0e --- /dev/null +++ b/app/javascript/dashboard/components-next/switch/Switch.vue @@ -0,0 +1,38 @@ + + + + + {{ t('SWITCH.TOGGLE') }} + + + diff --git a/app/javascript/dashboard/components/ui/Tabs/Tabs.vue b/app/javascript/dashboard/components/ui/Tabs/Tabs.vue index 682957204..3a7344fb4 100644 --- a/app/javascript/dashboard/components/ui/Tabs/Tabs.vue +++ b/app/javascript/dashboard/components/ui/Tabs/Tabs.vue @@ -1,5 +1,4 @@