From 23a804512aed3849f4500ecf76961516a6d4f8dc Mon Sep 17 00:00:00 2001 From: Pranav Date: Thu, 29 May 2025 01:05:10 -0600 Subject: [PATCH] feat: Update the UI to support the change for Copilot as a universal copilot (#11618) Co-authored-by: Shivam Mishra Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> --- .../dashboard/assets/scss/widgets/_tabs.scss | 2 +- .../Conversation/SidepanelSwitch.vue | 87 +++++++++++++++++++ ...ory.vue => SidebarActionsHeader.story.vue} | 16 +++- .../components-next/SidebarActionsHeader.vue | 47 ++++++++++ .../components-next/copilot/Copilot.vue | 43 ++++++--- .../components-next/copilot/CopilotHeader.vue | 32 ------- .../components-next/sidebar/Sidebar.vue | 2 +- .../dashboard/components/ChatList.vue | 2 +- .../dashboard/components/ChatListHeader.vue | 8 +- .../components/widgets/ChatTypeTabs.vue | 3 +- .../widgets/conversation/ConversationBox.vue | 21 +---- .../widgets/conversation/ConversationCard.vue | 4 +- .../conversation/ConversationHeader.vue | 38 ++------ .../conversation/ConversationSidebar.vue | 60 +++++-------- .../widgets/conversation/MessagesView.vue | 36 -------- .../dashboard/i18n/locale/en/general.json | 3 +- .../dashboard/conversation/ContactPanel.vue | 25 +++--- .../conversation/ConversationView.vue | 32 ++++--- 18 files changed, 248 insertions(+), 213 deletions(-) create mode 100644 app/javascript/dashboard/components-next/Conversation/SidepanelSwitch.vue rename app/javascript/dashboard/components-next/{copilot/CopilotHeader.story.vue => SidebarActionsHeader.story.vue} (50%) create mode 100644 app/javascript/dashboard/components-next/SidebarActionsHeader.vue delete mode 100644 app/javascript/dashboard/components-next/copilot/CopilotHeader.vue diff --git a/app/javascript/dashboard/assets/scss/widgets/_tabs.scss b/app/javascript/dashboard/assets/scss/widgets/_tabs.scss index 72a2e6be8..72773de7f 100644 --- a/app/javascript/dashboard/assets/scss/widgets/_tabs.scss +++ b/app/javascript/dashboard/assets/scss/widgets/_tabs.scss @@ -3,7 +3,7 @@ } .tabs--container--with-border { - @apply border-b border-n-weak; + @apply border-b border-b-n-weak; } .tabs--container--compact.tab--chat-type { diff --git a/app/javascript/dashboard/components-next/Conversation/SidepanelSwitch.vue b/app/javascript/dashboard/components-next/Conversation/SidepanelSwitch.vue new file mode 100644 index 000000000..ec3a8d03a --- /dev/null +++ b/app/javascript/dashboard/components-next/Conversation/SidepanelSwitch.vue @@ -0,0 +1,87 @@ + + + diff --git a/app/javascript/dashboard/components-next/copilot/CopilotHeader.story.vue b/app/javascript/dashboard/components-next/SidebarActionsHeader.story.vue similarity index 50% rename from app/javascript/dashboard/components-next/copilot/CopilotHeader.story.vue rename to app/javascript/dashboard/components-next/SidebarActionsHeader.story.vue index 78a345093..13d528240 100644 --- a/app/javascript/dashboard/components-next/copilot/CopilotHeader.story.vue +++ b/app/javascript/dashboard/components-next/SidebarActionsHeader.story.vue @@ -1,21 +1,29 @@ diff --git a/app/javascript/dashboard/components-next/SidebarActionsHeader.vue b/app/javascript/dashboard/components-next/SidebarActionsHeader.vue new file mode 100644 index 000000000..210ddfa0e --- /dev/null +++ b/app/javascript/dashboard/components-next/SidebarActionsHeader.vue @@ -0,0 +1,47 @@ + + + diff --git a/app/javascript/dashboard/components-next/copilot/Copilot.vue b/app/javascript/dashboard/components-next/copilot/Copilot.vue index 5feb474a6..6fb45c278 100644 --- a/app/javascript/dashboard/components-next/copilot/Copilot.vue +++ b/app/javascript/dashboard/components-next/copilot/Copilot.vue @@ -3,13 +3,15 @@ import { nextTick, ref, watch } from 'vue'; import { useI18n } from 'vue-i18n'; import { useTrack } from 'dashboard/composables'; import { COPILOT_EVENTS } from 'dashboard/helper/AnalyticsHelper/events'; +import { useUISettings } from 'dashboard/composables/useUISettings'; import CopilotInput from './CopilotInput.vue'; import CopilotLoader from './CopilotLoader.vue'; import CopilotAgentMessage from './CopilotAgentMessage.vue'; import CopilotAssistantMessage from './CopilotAssistantMessage.vue'; import ToggleCopilotAssistant from './ToggleCopilotAssistant.vue'; -import Icon from '../icon/Icon.vue'; +import Icon from 'dashboard/components-next/icon/Icon.vue'; +import SidebarActionsHeader from 'dashboard/components-next/SidebarActionsHeader.vue'; const props = defineProps({ supportAgent: { @@ -54,10 +56,6 @@ const useSuggestion = opt => { useTrack(COPILOT_EVENTS.SEND_SUGGESTED); }; -const handleReset = () => { - emit('reset'); -}; - const chatContainer = ref(null); const scrollToBottom = async () => { @@ -82,6 +80,21 @@ const promptOptions = [ }, ]; +const { updateUISettings } = useUISettings(); + +const closeCopilotPanel = () => { + updateUISettings({ + is_copilot_panel_open: false, + is_contact_sidebar_open: false, + }); +}; + +const handleSidebarAction = action => { + if (action === 'reset') { + emit('reset'); + } +}; + watch( [() => props.messages, () => props.isCaptainTyping], () => { @@ -93,6 +106,18 @@ watch(