From 1f8899f3ff78f7f8a5b493b34ef8e4d73850f411 Mon Sep 17 00:00:00 2001 From: Mark Waddle Date: Mon, 7 Oct 2024 14:51:42 -0700 Subject: [PATCH] Redirect to conversation on create (#97) --- workbench-app/src/routes/AssistantEditor.tsx | 6 +++++- workbench-app/src/routes/Dashboard.tsx | 17 ++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/workbench-app/src/routes/AssistantEditor.tsx b/workbench-app/src/routes/AssistantEditor.tsx index 7f8c573a..305f3e83 100644 --- a/workbench-app/src/routes/AssistantEditor.tsx +++ b/workbench-app/src/routes/AssistantEditor.tsx @@ -3,7 +3,7 @@ import { useAccount } from '@azure/msal-react'; import { Title3, Toolbar, makeStyles, shorthands, tokens } from '@fluentui/react-components'; import React from 'react'; -import { useParams } from 'react-router-dom'; +import { useNavigate, useParams } from 'react-router-dom'; import { AppView } from '../components/App/AppView'; import { Loading } from '../components/App/Loading'; import { AssistantDelete } from '../components/Assistants/AssistantDelete'; @@ -70,6 +70,7 @@ export const AssistantEditor: React.FC = () => { const [createConversationMessage] = useCreateConversationMessageMutation(); const account = useAccount(); const siteUtility = useSiteUtility(); + const navigate = useNavigate(); if (assistantConversationsError) { const errorMessage = JSON.stringify(assistantConversationsError); @@ -128,6 +129,9 @@ export const AssistantEditor: React.FC = () => { // add assistant to conversation await addConversationParticipant({ conversationId: conversation.id, participantId: assistantId }); + + // navigate to conversation + navigate(`/conversation/${conversation.id}`); }; if (isLoadingAssistant || isLoadingAssistantConversations || !assistant) { diff --git a/workbench-app/src/routes/Dashboard.tsx b/workbench-app/src/routes/Dashboard.tsx index e7829d62..a78d2aff 100644 --- a/workbench-app/src/routes/Dashboard.tsx +++ b/workbench-app/src/routes/Dashboard.tsx @@ -2,6 +2,7 @@ import { makeStyles, tokens } from '@fluentui/react-components'; import React from 'react'; +import { useNavigate } from 'react-router-dom'; import { AppMenu } from '../components/App/AppMenu'; import { AppView } from '../components/App/AppView'; import { ExperimentalNotice } from '../components/App/ExperimentalNotice'; @@ -11,6 +12,7 @@ import { MyConversations } from '../components/Conversations/MyConversations'; import { MyWorkflows } from '../components/Workflows/MyWorkflows'; import { useLocalUserAccount } from '../libs/useLocalUserAccount'; import { useSiteUtility } from '../libs/useSiteUtility'; +import { Conversation } from '../models/Conversation'; import { useGetAssistantsQuery, useGetConversationsQuery } from '../services/workbench'; import { useGetWorkflowDefinitionsQuery } from '../services/workbench/workflow'; @@ -36,6 +38,7 @@ export const Dashboard: React.FC = () => { isLoading: isLoadingWorkflowDefinitions, } = useGetWorkflowDefinitionsQuery(); const { getUserId } = useLocalUserAccount(); + const navigate = useNavigate(); const siteUtility = useSiteUtility(); siteUtility.setDocumentTitle('Dashboard'); @@ -55,6 +58,13 @@ export const Dashboard: React.FC = () => { throw new Error(`Error loading workflow definitions: ${errorMessage}`); } + const handleConversationCreate = React.useCallback( + (conversation: Conversation) => { + navigate(`/conversation/${conversation.id}`); + }, + [navigate], + ); + const appMenuAction = ; if (isLoadingAssistants || isLoadingConversations || isLoadingWorkflowDefinitions) { @@ -74,12 +84,17 @@ export const Dashboard: React.FC = () => {
- + {conversationsSharedWithMe.length > 0 && ( )}