ensure context passed properly

This commit is contained in:
pablodanswer 2024-10-16 12:08:15 -07:00
parent 1ef1e17629
commit ab09b967ac
13 changed files with 31 additions and 76 deletions

View File

@ -26,14 +26,9 @@ interface SidebarWrapperProps<T extends object> {
folders?: Folder[];
initiallyToggled: boolean;
openedFolders?: { [key: number]: boolean };
content: (props: T) => ReactNode;
headerProps: {
page: pageType;
user: User | null;
};
contentProps: T;
page: pageType;
size?: "sm" | "lg";
children: ReactNode;
}
export default function SidebarWrapper<T extends object>({
@ -42,10 +37,8 @@ export default function SidebarWrapper<T extends object>({
folders,
openedFolders,
page,
headerProps,
contentProps,
content,
size = "sm",
children,
}: SidebarWrapperProps<T>) {
const [toggledSidebar, setToggledSidebar] = useState(initiallyToggled);
const [showDocSidebar, setShowDocSidebar] = useState(false); // State to track if sidebar is open
@ -144,7 +137,6 @@ export default function SidebarWrapper<T extends object>({
sidebarToggled={toggledSidebar}
toggleSidebar={toggleSidebar}
page="assistants"
user={headerProps.user}
/>
<div className="w-full flex">
<div
@ -163,7 +155,7 @@ export default function SidebarWrapper<T extends object>({
<div
className={`mt-4 w-full ${size == "lg" ? "max-w-4xl" : "max-w-3xl"} mx-auto`}
>
{content(contentProps)}
{children}
</div>
</div>
</div>

View File

@ -16,6 +16,7 @@ import { useRouter } from "next/navigation";
import { AssistantTools } from "../ToolsDisplay";
import { classifyAssistants } from "@/lib/assistants/utils";
import { useAssistants } from "@/components/context/AssisantsContext";
import { useUser } from "@/components/user/UserProvider";
export function AssistantGalleryCard({
assistant,
user,
@ -137,8 +138,9 @@ export function AssistantGalleryCard({
</div>
);
}
export function AssistantsGallery({ user }: { user: User | null }) {
export function AssistantsGallery() {
const { assistants } = useAssistants();
const { user } = useUser();
const router = useRouter();

View File

@ -12,13 +12,11 @@ export default function WrappedAssistantsGallery({
initiallyToggled,
folders,
openedFolders,
user,
}: {
chatSessions: ChatSession[];
folders: Folder[];
initiallyToggled: boolean;
openedFolders?: { [key: number]: boolean };
user: User | null;
}) {
return (
<SidebarWrapper
@ -27,11 +25,8 @@ export default function WrappedAssistantsGallery({
chatSessions={chatSessions}
folders={folders}
openedFolders={openedFolders}
headerProps={{ user, page: "chat" }}
contentProps={{
user: user,
}}
content={(contentProps) => <AssistantsGallery user={contentProps.user} />}
/>
>
<AssistantsGallery />
</SidebarWrapper>
);
}

View File

@ -41,7 +41,6 @@ export default async function GalleryPage({
chatSessions={chatSessions}
folders={folders}
openedFolders={openedFolders}
user={user}
/>
</AssistantsProvider>
</>

View File

@ -1,12 +1,6 @@
"use client";
import React, {
Dispatch,
SetStateAction,
use,
useEffect,
useState,
} from "react";
import React, { Dispatch, SetStateAction, useEffect, useState } from "react";
import { MinimalUserSnapshot, User } from "@/lib/types";
import { Persona } from "@/app/admin/assistants/interfaces";
import { Button, Divider } from "@tremor/react";
@ -61,11 +55,6 @@ import {
} from "@/app/admin/assistants/lib";
import { DeleteEntityModal } from "@/components/modals/DeleteEntityModal";
import { MakePublicAssistantModal } from "@/app/chat/modal/MakePublicAssistantModal";
import {
classifyAssistants,
getUserCreatedAssistants,
orderAssistantsForUser,
} from "@/lib/assistants/utils";
import { CustomTooltip } from "@/components/tooltip/CustomTooltip";
import { useAssistants } from "@/components/context/AssisantsContext";
import { useUser } from "@/components/user/UserProvider";

View File

@ -3,21 +3,17 @@ import { AssistantsList } from "./AssistantsList";
import SidebarWrapper from "../SidebarWrapper";
import { ChatSession } from "@/app/chat/interfaces";
import { Folder } from "@/app/chat/folders/interfaces";
import { Persona } from "@/app/admin/assistants/interfaces";
import { User } from "@/lib/types";
export default function WrappedAssistantsMine({
chatSessions,
initiallyToggled,
folders,
openedFolders,
user,
}: {
chatSessions: ChatSession[];
folders: Folder[];
initiallyToggled: boolean;
openedFolders?: { [key: number]: boolean };
user: User | null;
}) {
return (
<SidebarWrapper
@ -26,11 +22,8 @@ export default function WrappedAssistantsMine({
chatSessions={chatSessions}
folders={folders}
openedFolders={openedFolders}
headerProps={{ user, page: "chat" }}
contentProps={{
user: user,
}}
content={(contentProps) => <AssistantsList user={contentProps.user} />}
/>
>
<AssistantsList />
</SidebarWrapper>
);
}

View File

@ -13,13 +13,11 @@ export default function WrappedPrompts({
initiallyToggled,
folders,
openedFolders,
user,
}: {
chatSessions: ChatSession[];
folders: Folder[];
initiallyToggled: boolean;
openedFolders?: { [key: number]: boolean };
user: User | null;
}) {
const {
data: promptLibrary,
@ -36,23 +34,18 @@ export default function WrappedPrompts({
chatSessions={chatSessions}
folders={folders}
openedFolders={openedFolders}
headerProps={{ user, page: "chat" }}
contentProps={{
user: user,
}}
content={(_) => (
<div className="mx-auto w-searchbar-xs 2xl:w-searchbar-sm 3xl:w-searchbar">
<AssistantsPageTitle>Prompt Gallery</AssistantsPageTitle>
<PromptSection
promptLibrary={promptLibrary || []}
isLoading={promptLibraryIsLoading}
error={promptLibraryError}
refreshPrompts={refreshPrompts}
isPublic={false}
centering
/>
</div>
)}
/>
>
<div className="mx-auto w-searchbar-xs 2xl:w-searchbar-sm 3xl:w-searchbar">
<AssistantsPageTitle>Prompt Gallery</AssistantsPageTitle>
<PromptSection
promptLibrary={promptLibrary || []}
isLoading={promptLibraryIsLoading}
error={promptLibraryError}
refreshPrompts={refreshPrompts}
isPublic={false}
centering
/>
</div>
</SidebarWrapper>
);
}

View File

@ -39,7 +39,6 @@ export default async function GalleryPage({
chatSessions={chatSessions}
folders={folders}
openedFolders={openedFolders}
user={user}
/>
</AssistantsProvider>
);

View File

@ -1938,7 +1938,6 @@ export function ChatPage({
: undefined
}
toggleSidebar={toggleSidebar}
user={user}
currentChatSession={selectedChatSession}
/>
)}

View File

@ -67,7 +67,7 @@ export default async function Page({ params }: { params: { chatId: string } }) {
return (
<div>
<div className="absolute top-0 z-40 w-full">
<FunctionalHeader page="shared" user={user} />
<FunctionalHeader page="shared" />
</div>
<div className="flex relative bg-background text-default overflow-hidden pt-16 h-screen">

View File

@ -16,7 +16,7 @@ export default async function GalleryPage({
redirect(data.redirect);
}
const { user, chatSessions, folders, openedFolders, toggleSidebar } = data;
const { chatSessions, folders, openedFolders, toggleSidebar } = data;
return (
<WrappedPrompts
@ -24,7 +24,6 @@ export default async function GalleryPage({
chatSessions={chatSessions}
folders={folders}
openedFolders={openedFolders}
user={user}
/>
);
}

View File

@ -2,23 +2,19 @@
import { User } from "@/lib/types";
import { UserDropdown } from "../UserDropdown";
import { FiShare2 } from "react-icons/fi";
import { SetStateAction, useContext, useEffect, useState } from "react";
import { SetStateAction, useEffect } from "react";
import { NewChatIcon } from "../icons/icons";
import { NEXT_PUBLIC_NEW_CHAT_DIRECTS_TO_SAME_PERSONA } from "@/lib/constants";
import { ChatSession } from "@/app/chat/interfaces";
import { Notification } from "@/app/admin/settings/interfaces";
import { Persona } from "@/app/admin/assistants/interfaces";
import Link from "next/link";
import { pageType } from "@/app/chat/sessionSidebar/types";
import { useRouter } from "next/navigation";
import { ChatBanner } from "@/app/chat/ChatBanner";
import LogoType from "../header/LogoType";
import useSWR from "swr";
import { errorHandlingFetcher } from "@/lib/fetcher";
import { NotificationCard } from "./Notification";
import { useUser } from "../user/UserProvider";
export default function FunctionalHeader({
user,
page,
currentChatSession,
setSharingModalVisible,
@ -28,12 +24,12 @@ export default function FunctionalHeader({
}: {
reset?: () => void;
page: pageType;
user: User | null;
sidebarToggled?: boolean;
currentChatSession?: ChatSession | null | undefined;
setSharingModalVisible?: (value: SetStateAction<boolean>) => void;
toggleSidebar?: () => void;
}) {
const { user } = useUser();
useEffect(() => {
const handleKeyDown = (event: KeyboardEvent) => {
if (event.metaKey || event.ctrlKey) {

View File

@ -709,7 +709,6 @@ export const SearchSection = ({
reset={() => setQuery("")}
toggleSidebar={toggleSidebar}
page="search"
user={user}
/>
<div className="w-full flex">
<div