ui / src /context /SessionContext.tsx
ZuhairAhmed's picture
working sessions
e586655
Raw
History Blame Contribute Delete
1.06 kB
"use client";
import React, { createContext, useContext } from "react";
import { useSessions, Session, Message } from "@/lib/SessionManager";
interface SessionContextType {
sessions: Session[];
currentSessionId: string | null;
createNewSession: () => void;
switchSession: (sessionId: string) => void;
updateSessionMessages: (sessionId: string, messages: Message[]) => void;
deleteSession: (sessionId: string) => void;
renameSession: (sessionId: string, newName: string) => void;
}
const SessionContext = createContext<SessionContextType | undefined>(undefined);
export const SessionProvider: React.FC<{ children: React.ReactNode }> = ({
children,
}) => {
const sessionManager = useSessions();
return (
<SessionContext.Provider value={sessionManager}>
{children}
</SessionContext.Provider>
);
};
export const useSessionContext = () => {
const context = useContext(SessionContext);
if (context === undefined) {
throw new Error("useSessionContext must be used within a SessionProvider");
}
return context;
};