fix: will correctly switch endpoints and reset the convo if the first message returned was an error (#1225)

This commit is contained in:
Danny Avila 2023-11-26 14:24:43 -05:00 committed by GitHub
parent 12209fe0dd
commit 4b289640f2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 4 deletions

View file

@ -2,7 +2,7 @@ import { useState } from 'react';
import { Settings } from 'lucide-react'; import { Settings } from 'lucide-react';
import { EModelEndpoint } from 'librechat-data-provider'; import { EModelEndpoint } from 'librechat-data-provider';
import type { FC } from 'react'; import type { FC } from 'react';
import { useLocalize, useUserKey, useOriginNavigate } from '~/hooks'; import { useLocalize, useUserKey } from '~/hooks';
import { SetKeyDialog } from '~/components/Input/SetKeyDialog'; import { SetKeyDialog } from '~/components/Input/SetKeyDialog';
import { useChatContext } from '~/Providers'; import { useChatContext } from '~/Providers';
import { icons } from './Icons'; import { icons } from './Icons';
@ -30,7 +30,6 @@ const MenuItem: FC<MenuItemProps> = ({
const [isDialogOpen, setDialogOpen] = useState(false); const [isDialogOpen, setDialogOpen] = useState(false);
const { newConversation } = useChatContext(); const { newConversation } = useChatContext();
const { getExpiry } = useUserKey(endpoint); const { getExpiry } = useUserKey(endpoint);
const navigate = useOriginNavigate();
const localize = useLocalize(); const localize = useLocalize();
const expiryTime = getExpiry(); const expiryTime = getExpiry();
@ -41,8 +40,7 @@ const MenuItem: FC<MenuItemProps> = ({
if (!expiryTime) { if (!expiryTime) {
setDialogOpen(true); setDialogOpen(true);
} }
newConversation({ template: { endpoint: newEndpoint } }); newConversation({ template: { endpoint: newEndpoint, conversationId: 'new' } });
navigate('new');
} }
}; };

View file

@ -23,6 +23,7 @@ type TResData = {
requestMessage: TMessage; requestMessage: TMessage;
responseMessage: TMessage; responseMessage: TMessage;
conversation: TConversation; conversation: TConversation;
conversationId?: string;
}; };
export default function useSSE(submission: TSubmission | null, index = 0) { export default function useSSE(submission: TSubmission | null, index = 0) {
@ -36,6 +37,7 @@ export default function useSSE(submission: TSubmission | null, index = 0) {
setIsSubmitting, setIsSubmitting,
resetLatestMessage, resetLatestMessage,
invalidateConvos, invalidateConvos,
newConversation,
} = useChatHelpers(index, paramId); } = useChatHelpers(index, paramId);
const { data: startupConfig } = useGetStartupConfig(); const { data: startupConfig } = useGetStartupConfig();
@ -210,6 +212,9 @@ export default function useSSE(submission: TSubmission | null, index = 0) {
}); });
setIsSubmitting(false); setIsSubmitting(false);
setMessages([...messages, message, errorResponse]); setMessages([...messages, message, errorResponse]);
if (data.conversationId && paramId === 'new') {
newConversation({ template: { conversationId: data.conversationId } });
}
return; return;
}; };