LibreChat/client/src/routes/AssistantsRoute.tsx
Danny Avila df1dfa7d46
refactor: Use librechat-data-provider app-wide 🔄 (#1326)
* chore: bump vite, vitejs/plugin-react, mark client package as esm, move react-query as a peer dep in data-provider

* chore: import changes due to new data-provider export strategy, also fix type imports where applicable

* chore: export react-query services as separate to avoid react dependencies in /api/

* chore: suppress sourcemap warnings and polyfill node:path which is used by filenamify
TODO: replace filenamify with an alternative and REMOVE polyfill

* chore: /api/ changes to support `librechat-data-provider`

* refactor: rewrite Dockerfile.multi in light of /api/ changes to support `librechat-data-provider`

* chore: remove volume mapping to node_modules directories in default compose file

* chore: remove schemas from /api/ as is no longer needed with use of `librechat-data-provider`

* fix(ci): jest `librechat-data-provider/react-query` module resolution
2023-12-11 14:48:40 -05:00

41 lines
1.2 KiB
TypeScript

import { useParams } from 'react-router-dom';
import { useGetMessagesByConvoId } from 'librechat-data-provider/react-query';
import ChatView from '~/components/Chat/SingleChatView';
import useAuthRedirect from './useAuthRedirect';
import { buildTree } from '~/utils';
import store from '~/store';
export default function AssistantsRoute() {
const index = 0;
const { conversationId } = useParams();
const { conversation } = store.useCreateConversationAtom(index);
const { data: messagesTree = null } = useGetMessagesByConvoId(conversationId ?? '', {
enabled: !!(conversationId && conversationId !== 'new'),
select: (data) => {
const dataTree = buildTree(data, false);
return dataTree?.length === 0 ? null : dataTree ?? null;
},
});
const { isAuthenticated } = useAuthRedirect();
if (!isAuthenticated) {
return null;
}
// if not a conversation
if (conversation?.conversationId === 'search') {
return null;
}
// if conversationId not match
if (conversation?.conversationId !== conversationId && !conversation) {
return null;
}
// if conversationId is null
if (!conversationId) {
return null;
}
return <ChatView index={index} messagesTree={messagesTree} />;
}