mirror of
https://github.com/danswer-ai/danswer.git
synced 2025-04-07 19:38:19 +02:00
ensure context passed properly
This commit is contained in:
parent
1ef1e17629
commit
ab09b967ac
@ -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>
|
||||
|
@ -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();
|
||||
|
||||
|
@ -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>
|
||||
);
|
||||
}
|
||||
|
@ -41,7 +41,6 @@ export default async function GalleryPage({
|
||||
chatSessions={chatSessions}
|
||||
folders={folders}
|
||||
openedFolders={openedFolders}
|
||||
user={user}
|
||||
/>
|
||||
</AssistantsProvider>
|
||||
</>
|
||||
|
@ -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";
|
||||
|
@ -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>
|
||||
);
|
||||
}
|
||||
|
@ -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>
|
||||
);
|
||||
}
|
||||
|
@ -39,7 +39,6 @@ export default async function GalleryPage({
|
||||
chatSessions={chatSessions}
|
||||
folders={folders}
|
||||
openedFolders={openedFolders}
|
||||
user={user}
|
||||
/>
|
||||
</AssistantsProvider>
|
||||
);
|
||||
|
@ -1938,7 +1938,6 @@ export function ChatPage({
|
||||
: undefined
|
||||
}
|
||||
toggleSidebar={toggleSidebar}
|
||||
user={user}
|
||||
currentChatSession={selectedChatSession}
|
||||
/>
|
||||
)}
|
||||
|
@ -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">
|
||||
|
@ -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}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
@ -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) {
|
||||
|
@ -709,7 +709,6 @@ export const SearchSection = ({
|
||||
reset={() => setQuery("")}
|
||||
toggleSidebar={toggleSidebar}
|
||||
page="search"
|
||||
user={user}
|
||||
/>
|
||||
<div className="w-full flex">
|
||||
<div
|
||||
|
Loading…
x
Reference in New Issue
Block a user