quivr/frontend/lib/context/ChatsProvider/chats-provider.tsx
Mamadou DICKO e2c1a027b0
feat: add chat view new design (#1897)
Issue: https://github.com/StanGirard/quivr/issues/1888

- Add Spinner when history is loading
- Change chat messages fetching logic
- Add cha view new design

Demo:



https://github.com/StanGirard/quivr/assets/63923024/c4341ccf-bacd-4720-9aa1-127dd557a75c
2023-12-14 16:22:09 +01:00

40 lines
927 B
TypeScript

"use client";
import { createContext, useState } from "react";
import { ChatEntity } from "@/app/chat/[chatId]/types";
type ChatsContextType = {
allChats: ChatEntity[];
//set setAllChats is from the useState hook so it can take a function as params
setAllChats: React.Dispatch<React.SetStateAction<ChatEntity[]>>;
isLoading: boolean;
setIsLoading: React.Dispatch<React.SetStateAction<boolean>>;
};
export const ChatsContext = createContext<ChatsContextType | undefined>(
undefined
);
export const ChatsProvider = ({
children,
}: {
children: React.ReactNode;
}): JSX.Element => {
const [allChats, setAllChats] = useState<ChatEntity[]>([]);
const [isLoading, setIsLoading] = useState<boolean>(false);
return (
<ChatsContext.Provider
value={{
allChats,
setAllChats,
isLoading,
setIsLoading,
}}
>
{children}
</ChatsContext.Provider>
);
};