From cc4d54becf3090dde7258a52f17a3cf60bc82471 Mon Sep 17 00:00:00 2001 From: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Date: Tue, 1 Apr 2025 05:51:32 +0530 Subject: [PATCH] chore: Update buttons in dashboard (#11145) # Pull Request Template ## Changes * Remove unused component `MaskedText.vue` * Remove unused component `ContactIntro.vue` * Remove unused `AddCustomViews.vue` component * Update buttons in help center upgrade page image * Update SLA view details button in reports page image * Update assign to me conversation action button image * Update button in participants action image image * Update the show more attributes button image * Update SLA empty state image * Update create new label button from dropdown image * Update add macro button image * Update copy button image * Update the buttons in banner component image image * Update table pagination buttons image image * Update filter chip buttons and dropdown colors image image image image image --------- Co-authored-by: Pranav Co-authored-by: Muhsin Keloth Co-authored-by: Shivam Mishra --- .../components-next/banner/Banner.vue | 2 + .../components-next/filter/SaveCustomView.vue | 10 +- .../dashboard/components/MaskedText.vue | 64 --------- .../dashboard/components/SidemenuIcon.vue | 16 ++- .../app/PendingEmailVerificationBanner.vue | 2 +- app/javascript/dashboard/components/index.js | 2 - .../components/layout/AvailabilityStatus.vue | 22 +-- .../sidebarComponents/AccountContext.vue | 17 ++- .../layout/sidebarComponents/AgentDetails.vue | 11 +- .../layout/sidebarComponents/OptionsMenu.vue | 123 ++++++++++------- .../sidebarComponents/SecondaryNavItem.vue | 27 ++-- .../specs/AccountSelector.spec.js | 1 - .../specs/AgentDetails.spec.js | 6 +- .../layout/specs/AvailabilityStatus.spec.js | 4 +- .../components/specs/SidemenuIcon.spec.js | 2 +- .../__snapshots__/SidemenuIcon.spec.js.snap | 10 +- .../dashboard/components/ui/Banner.vue | 70 ++++------ .../components/ui/Dropdown/DropdownButton.vue | 45 ++---- .../ui/Dropdown/DropdownEmptyState.vue | 4 +- .../components/ui/Dropdown/DropdownList.vue | 2 +- .../ui/Dropdown/DropdownListItemButton.vue | 8 +- .../ui/Dropdown/DropdownLoadingState.vue | 4 +- .../components/ui/Dropdown/DropdownSearch.vue | 22 +-- .../dashboard/components/ui/WootButton.vue | 129 ------------------ .../widgets/TableFooterPagination.vue | 122 +++++++---------- .../widgets/conversation/ReplyBox.vue | 2 +- .../widgets/conversation/bubble/Contact.vue | 13 +- .../conversation/bubble/integrations/Dyte.vue | 32 ++--- .../conversation/LabelSuggestion.vue | 48 +++---- .../widgets/conversation/linear/LinkIssue.vue | 5 +- .../linear/SearchableDropdown.vue | 5 +- .../widgets/forms/AvatarUploader.vue | 19 +-- .../contact/components/ContactIntro.vue | 123 ----------------- .../components/MessageContextMenu.vue | 12 +- .../conversation/ConversationAction.vue | 16 ++- .../conversation/ConversationParticipant.vue | 35 +++-- .../dashboard/conversation/Macros/List.vue | 11 +- .../conversation/contact/ContactInfoRow.vue | 16 +-- .../customAttributes/CustomAttributes.vue | 20 +-- .../conversation/search/PopOverSearch.vue | 3 +- .../dashboard/customviews/AddCustomViews.vue | 114 ---------------- .../helpcenter/components/UpgradePage.vue | 25 ++-- .../components/NotificationPanel.vue | 91 ++++++------ .../components/NotificationPanelItem.vue | 13 +- .../components/NotificationPanelList.vue | 15 +- .../Filters/v3/ActiveFilterChip.vue | 3 +- .../components/Filters/v3/AddFilterChip.vue | 6 +- .../reports/components/SLA/SLAViewDetails.vue | 15 +- .../settings/sla/components/SLAEmptyState.vue | 13 +- .../shared/components/emoji/EmojiInput.vue | 92 +++++-------- .../components/ui/label/LabelDropdown.vue | 42 ++---- .../whatsappTemplates.spec.js | 2 +- vitest.setup.js | 2 +- 53 files changed, 515 insertions(+), 1003 deletions(-) delete mode 100644 app/javascript/dashboard/components/MaskedText.vue delete mode 100644 app/javascript/dashboard/components/ui/WootButton.vue delete mode 100644 app/javascript/dashboard/modules/contact/components/ContactIntro.vue delete mode 100644 app/javascript/dashboard/routes/dashboard/customviews/AddCustomViews.vue diff --git a/app/javascript/dashboard/components-next/banner/Banner.vue b/app/javascript/dashboard/components-next/banner/Banner.vue index ed038d4bb..466c03be0 100644 --- a/app/javascript/dashboard/components-next/banner/Banner.vue +++ b/app/javascript/dashboard/components-next/banner/Banner.vue @@ -1,3 +1,5 @@ + + - - - - diff --git a/app/javascript/dashboard/components/SidemenuIcon.vue b/app/javascript/dashboard/components/SidemenuIcon.vue index 59ef4c4c2..50bee3f17 100644 --- a/app/javascript/dashboard/components/SidemenuIcon.vue +++ b/app/javascript/dashboard/components/SidemenuIcon.vue @@ -3,12 +3,16 @@ import { FEATURE_FLAGS } from 'dashboard/featureFlags'; import { BUS_EVENTS } from 'shared/constants/busEvents'; import { mapGetters } from 'vuex'; import { emitter } from 'shared/helpers/mitt'; +import NextButton from 'dashboard/components-next/button/Button.vue'; export default { + components: { + NextButton, + }, props: { size: { type: String, - default: 'small', + default: 'sm', }, }, computed: { @@ -33,13 +37,13 @@ export default { diff --git a/app/javascript/dashboard/components/app/PendingEmailVerificationBanner.vue b/app/javascript/dashboard/components/app/PendingEmailVerificationBanner.vue index a349786e6..e09f8368a 100644 --- a/app/javascript/dashboard/components/app/PendingEmailVerificationBanner.vue +++ b/app/javascript/dashboard/components/app/PendingEmailVerificationBanner.vue @@ -35,7 +35,7 @@ export default { color-scheme="alert" :banner-message="bannerMessage" :action-button-label="actionButtonMessage" - action-button-icon="mail" + action-button-icon="i-lucide-mail" has-action-button @primary-action="resendVerificationEmail" /> diff --git a/app/javascript/dashboard/components/index.js b/app/javascript/dashboard/components/index.js index dbd827d57..2f807d2ef 100644 --- a/app/javascript/dashboard/components/index.js +++ b/app/javascript/dashboard/components/index.js @@ -1,7 +1,6 @@ // [NOTE][DEPRECATED] This method is to be deprecated, please do not add new components to this file. /* eslint no-plusplus: 0 */ import AvatarUploader from './widgets/forms/AvatarUploader.vue'; -import Button from './ui/WootButton.vue'; import Code from './Code.vue'; import ColorPicker from './widgets/ColorPicker.vue'; import ConfirmDeleteModal from './widgets/modal/ConfirmDeleteModal.vue'; @@ -26,7 +25,6 @@ import DatePicker from './ui/DatePicker/DatePicker.vue'; const WootUIKit = { AvatarUploader, - Button, Code, ColorPicker, ConfirmDeleteModal, diff --git a/app/javascript/dashboard/components/layout/AvailabilityStatus.vue b/app/javascript/dashboard/components/layout/AvailabilityStatus.vue index 8bce09250..04190c7a4 100644 --- a/app/javascript/dashboard/components/layout/AvailabilityStatus.vue +++ b/app/javascript/dashboard/components/layout/AvailabilityStatus.vue @@ -7,6 +7,7 @@ import WootDropdownHeader from 'shared/components/ui/dropdown/DropdownHeader.vue import WootDropdownDivider from 'shared/components/ui/dropdown/DropdownDivider.vue'; import AvailabilityStatusBadge from '../widgets/conversation/AvailabilityStatusBadge.vue'; import wootConstants from 'dashboard/constants/globals'; +import NextButton from 'dashboard/components-next/button/Button.vue'; const { AVAILABILITY_STATUS_KEYS } = wootConstants; @@ -17,6 +18,7 @@ export default { WootDropdownMenu, WootDropdownItem, AvailabilityStatusBadge, + NextButton, }, data() { return { @@ -101,19 +103,21 @@ export default { :key="status.value" class="flex items-baseline" > - - {{ status.label }} - + + {{ status.label }} + + - +
{{ $t('SIDEBAR.SET_AUTO_OFFLINE.TEXT') }} diff --git a/app/javascript/dashboard/components/layout/sidebarComponents/AccountContext.vue b/app/javascript/dashboard/components/layout/sidebarComponents/AccountContext.vue index 83b2cc728..dc00ed03d 100644 --- a/app/javascript/dashboard/components/layout/sidebarComponents/AccountContext.vue +++ b/app/javascript/dashboard/components/layout/sidebarComponents/AccountContext.vue @@ -1,7 +1,11 @@ diff --git a/app/javascript/dashboard/components/layout/sidebarComponents/OptionsMenu.vue b/app/javascript/dashboard/components/layout/sidebarComponents/OptionsMenu.vue index 4c1367957..03549dad6 100644 --- a/app/javascript/dashboard/components/layout/sidebarComponents/OptionsMenu.vue +++ b/app/javascript/dashboard/components/layout/sidebarComponents/OptionsMenu.vue @@ -5,12 +5,14 @@ import WootDropdownItem from 'shared/components/ui/dropdown/DropdownItem.vue'; import WootDropdownMenu from 'shared/components/ui/dropdown/DropdownMenu.vue'; import AvailabilityStatus from 'dashboard/components/layout/AvailabilityStatus.vue'; import { FEATURE_FLAGS } from '../../../featureFlags'; +import NextButton from 'dashboard/components-next/button/Button.vue'; export default { components: { WootDropdownMenu, WootDropdownItem, AvailabilityStatus, + NextButton, }, props: { show: { @@ -82,37 +84,46 @@ export default { - - {{ $t('SIDEBAR_ITEMS.CHANGE_ACCOUNTS') }} - + + {{ $t('SIDEBAR_ITEMS.CHANGE_ACCOUNTS') }} + + - - {{ $t('SIDEBAR_ITEMS.CONTACT_SUPPORT') }} - + + {{ $t('SIDEBAR_ITEMS.CONTACT_SUPPORT') }} + + - - {{ $t('SIDEBAR_ITEMS.KEYBOARD_SHORTCUTS') }} - + + {{ $t('SIDEBAR_ITEMS.KEYBOARD_SHORTCUTS') }} + + - - - {{ $t('SIDEBAR_ITEMS.PROFILE_SETTINGS') }} - + + + {{ $t('SIDEBAR_ITEMS.PROFILE_SETTINGS') }} + + - - {{ $t('SIDEBAR_ITEMS.APPEARANCE') }} - + + {{ $t('SIDEBAR_ITEMS.APPEARANCE') }} + + - - - {{ $t('SIDEBAR_ITEMS.SUPER_ADMIN_CONSOLE') }} - + + + {{ $t('SIDEBAR_ITEMS.SUPER_ADMIN_CONSOLE') }} + + - - {{ $t('SIDEBAR_ITEMS.LOGOUT') }} - + + {{ $t('SIDEBAR_ITEMS.LOGOUT') }} + +
diff --git a/app/javascript/dashboard/components/layout/sidebarComponents/SecondaryNavItem.vue b/app/javascript/dashboard/components/layout/sidebarComponents/SecondaryNavItem.vue index a38bbd20b..6ca2ef8f8 100644 --- a/app/javascript/dashboard/components/layout/sidebarComponents/SecondaryNavItem.vue +++ b/app/javascript/dashboard/components/layout/sidebarComponents/SecondaryNavItem.vue @@ -13,9 +13,10 @@ import { isOnUnattendedView, } from '../../../store/modules/conversations/helpers/actionHelpers'; import Policy from '../../policy.vue'; +import NextButton from 'dashboard/components-next/button/Button.vue'; export default { - components: { SecondaryChildNavItem, Policy }, + components: { SecondaryChildNavItem, Policy, NextButton }, props: { menuItem: { type: Object, @@ -205,14 +206,7 @@ export default { {{ $t(`SIDEBAR.${menuItem.label}`) }}
- +
  • - - {{ $t(`SIDEBAR.${menuItem.newLinkTag}`) }} - + />
  • diff --git a/app/javascript/dashboard/components/layout/sidebarComponents/specs/AccountSelector.spec.js b/app/javascript/dashboard/components/layout/sidebarComponents/specs/AccountSelector.spec.js index 2d93d3952..c819702b0 100644 --- a/app/javascript/dashboard/components/layout/sidebarComponents/specs/AccountSelector.spec.js +++ b/app/javascript/dashboard/components/layout/sidebarComponents/specs/AccountSelector.spec.js @@ -41,7 +41,6 @@ describe('AccountSelector', () => { 'fluent-icon': FluentIcon, }, stubs: { - WootButton: { template: '' } }, + stubs: { NextButton: { template: '' } }, }, }); }); diff --git a/app/javascript/dashboard/components/layout/specs/AvailabilityStatus.spec.js b/app/javascript/dashboard/components/layout/specs/AvailabilityStatus.spec.js index 2a9dbaba0..ccff4321a 100644 --- a/app/javascript/dashboard/components/layout/specs/AvailabilityStatus.spec.js +++ b/app/javascript/dashboard/components/layout/specs/AvailabilityStatus.spec.js @@ -1,7 +1,7 @@ import { mount } from '@vue/test-utils'; import { createStore } from 'vuex'; import AvailabilityStatus from '../AvailabilityStatus.vue'; -import WootButton from 'dashboard/components/ui/WootButton.vue'; +import NextButton from 'dashboard/components-next/button/Button.vue'; import WootDropdownItem from 'shared/components/ui/dropdown/DropdownItem.vue'; import WootDropdownMenu from 'shared/components/ui/dropdown/DropdownMenu.vue'; import WootDropdownHeader from 'shared/components/ui/dropdown/DropdownHeader.vue'; @@ -40,7 +40,7 @@ describe('AvailabilityStatus', () => { global: { plugins: [store], components: { - WootButton, + NextButton, WootDropdownItem, WootDropdownMenu, WootDropdownHeader, diff --git a/app/javascript/dashboard/components/specs/SidemenuIcon.spec.js b/app/javascript/dashboard/components/specs/SidemenuIcon.spec.js index 59cf8f4ec..dc946369c 100644 --- a/app/javascript/dashboard/components/specs/SidemenuIcon.spec.js +++ b/app/javascript/dashboard/components/specs/SidemenuIcon.spec.js @@ -22,7 +22,7 @@ const store = createStore({ describe('SidemenuIcon', () => { test('matches snapshot', () => { const wrapper = shallowMount(SidemenuIcon, { - stubs: { WootButton: { template: '' } }, + stubs: { NextButton: { template: '' } }, global: { plugins: [store] }, }); expect(wrapper.vm).toBeTruthy(); diff --git a/app/javascript/dashboard/components/specs/__snapshots__/SidemenuIcon.spec.js.snap b/app/javascript/dashboard/components/specs/__snapshots__/SidemenuIcon.spec.js.snap index 7e35f5717..a5ca2af6a 100644 --- a/app/javascript/dashboard/components/specs/__snapshots__/SidemenuIcon.spec.js.snap +++ b/app/javascript/dashboard/components/specs/__snapshots__/SidemenuIcon.spec.js.snap @@ -2,11 +2,11 @@ exports[`SidemenuIcon > matches snapshot 1`] = `