|
1 | 1 | import { useEffect, useRef } from 'react';
|
2 | 2 | import { useParams } from 'react-router-dom';
|
3 |
| -import { useGetConvoIdQuery } from 'librechat-data-provider/react-query'; |
| 3 | +import { useGetConvoIdQuery, useGetModelsQuery } from 'librechat-data-provider/react-query'; |
4 | 4 | import AssistantsView from '~/components/Chat/AssistantsView';
|
5 | 5 | import useAuthRedirect from './useAuthRedirect';
|
6 |
| -import { useSetStorage } from '~/hooks'; |
| 6 | +import { useNewConvo } from '~/hooks'; |
7 | 7 | import store from '~/store';
|
8 | 8 |
|
9 |
| -export default function ChatRoute() { |
| 9 | +export default function AssistantsRoute() { |
10 | 10 | const index = 0;
|
11 |
| - const setStorage = useSetStorage(); |
12 | 11 | const { conversationId } = useParams();
|
13 |
| - const { conversation, setConversation } = store.useCreateConversationAtom(index); |
| 12 | + const { conversation } = store.useCreateConversationAtom(index); |
14 | 13 | const { isAuthenticated } = useAuthRedirect();
|
| 14 | + const { newConversation } = useNewConvo(); |
15 | 15 | const hasSetConversation = useRef(false);
|
16 | 16 |
|
| 17 | + const modelsQuery = useGetModelsQuery({ enabled: isAuthenticated }); |
17 | 18 | const initialConvoQuery = useGetConvoIdQuery(conversationId ?? '', {
|
18 | 19 | enabled: isAuthenticated && conversationId !== 'new',
|
19 | 20 | });
|
20 | 21 |
|
21 | 22 | useEffect(() => {
|
22 |
| - if (initialConvoQuery.data && !hasSetConversation.current) { |
23 |
| - setStorage(initialConvoQuery.data); |
24 |
| - setConversation(initialConvoQuery.data); |
| 23 | + if (conversationId === 'new' && modelsQuery.data && !hasSetConversation.current) { |
| 24 | + newConversation({ modelsData: modelsQuery.data }); |
| 25 | + hasSetConversation.current = true; |
| 26 | + } else if (initialConvoQuery.data && modelsQuery.data && !hasSetConversation.current) { |
| 27 | + newConversation({ |
| 28 | + template: initialConvoQuery.data, |
| 29 | + modelsData: modelsQuery.data, |
| 30 | + }); |
25 | 31 | hasSetConversation.current = true;
|
26 | 32 | }
|
27 | 33 | // eslint-disable-next-line react-hooks/exhaustive-deps
|
28 |
| - }, [initialConvoQuery.data]); |
| 34 | + }, [initialConvoQuery.data, modelsQuery.data]); |
29 | 35 |
|
30 | 36 | if (!isAuthenticated) {
|
31 | 37 | return null;
|
|
0 commit comments