mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-18 17:30:16 +01:00
rearrange convo fetching for performance in progress
This commit is contained in:
parent
c00a2c902b
commit
e4d1ff2523
5 changed files with 21 additions and 8 deletions
|
|
@ -5,11 +5,14 @@ import TextChat from './components/main/TextChat';
|
|||
import Nav from './components/Nav';
|
||||
import MobileNav from './components/Nav/MobileNav';
|
||||
import useDocumentTitle from '~/hooks/useDocumentTitle';
|
||||
import { useSelector } from 'react-redux';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import { setConvos } from '~/store/convoSlice';
|
||||
|
||||
const App = () => {
|
||||
const { messages } = useSelector((state) => state.messages);
|
||||
const { title } = useSelector((state) => state.convo);
|
||||
const dispatch = useDispatch();
|
||||
const { data, error, isLoading, mutate } = swr('http://localhost:3050/convos', (res) => dispatch(setConvos(res)));
|
||||
|
||||
useDocumentTitle(title);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,16 +1,13 @@
|
|||
import React, { useState } from 'react';
|
||||
import { useSelector } from 'react-redux';
|
||||
import Conversation from './Conversation';
|
||||
import { swr } from '~/utils/fetchers';
|
||||
// import { swr } from '~/utils/fetchers';
|
||||
import useDidMountEffect from '~/hooks/useDidMountEffect';
|
||||
|
||||
export default function Conversations() {
|
||||
const { data, error, isLoading, mutate } = swr('http://localhost:3050/convos');
|
||||
const conversations = data;
|
||||
const [isHovering, setIsHovering] = useState(false);
|
||||
const { conversationId } = useSelector((state) => state.convo);
|
||||
|
||||
useDidMountEffect(() => mutate(), [conversationId]);
|
||||
// useDidMountEffect(() => mutate(), [conversationId]);
|
||||
// const currentRef = useRef(null);
|
||||
|
||||
// const scrollToTop = () => {
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@ import Conversations from '../Conversations';
|
|||
import NavLinks from './NavLinks';
|
||||
|
||||
export default function Nav() {
|
||||
const { conversationId } = useSelector((state) => state.convo);
|
||||
|
||||
return (
|
||||
<div className="dark hidden bg-gray-900 md:fixed md:inset-y-0 md:flex md:w-[260px] md:flex-col">
|
||||
<div className="flex h-full min-h-0 flex-col ">
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ const initialState = {
|
|||
title: 'ChatGPT Clone',
|
||||
conversationId: null,
|
||||
parentMessageId: null,
|
||||
convos: [],
|
||||
convosLoading: false,
|
||||
};
|
||||
|
||||
const currentSlice = createSlice({
|
||||
|
|
@ -17,9 +19,10 @@ const currentSlice = createSlice({
|
|||
setError: (state, action) => {
|
||||
state.error = action.payload;
|
||||
},
|
||||
setConvos: (state, action) => state.convos = action.payload,
|
||||
}
|
||||
});
|
||||
|
||||
export const { setConversation, setError } = currentSlice.actions;
|
||||
export const { setConversation, setConvos, setError } = currentSlice.actions;
|
||||
|
||||
export default currentSlice.reducer;
|
||||
|
|
|
|||
|
|
@ -8,7 +8,15 @@ const postRequest = async (url, { arg }) => {
|
|||
return await axios.post(url, { arg });
|
||||
};
|
||||
|
||||
export const swr = (path) => useSWR(path, fetcher);
|
||||
export const swr = (path, successCallback) => {
|
||||
const options = {};
|
||||
|
||||
if (successCallback) {
|
||||
options.onSuccess = successCallback;
|
||||
}
|
||||
|
||||
return useSWR(path, fetcher);
|
||||
}
|
||||
|
||||
export default function manualSWR(path, type, successCallback) {
|
||||
const options = {};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue