From b8ac698a663ebe30d81d5f63741bbd298c5c22cf Mon Sep 17 00:00:00 2001 From: Raunak Bhagat Date: Tue, 22 Jul 2025 16:39:17 -0700 Subject: [PATCH 1/7] Use props instead of inline type def --- web/src/app/chat/ChatPage.tsx | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/web/src/app/chat/ChatPage.tsx b/web/src/app/chat/ChatPage.tsx index 81052d5dd45..44401725e0f 100644 --- a/web/src/app/chat/ChatPage.tsx +++ b/web/src/app/chat/ChatPage.tsx @@ -150,6 +150,15 @@ export enum UploadIntent { ADD_TO_DOCUMENTS, // For files uploaded via FilePickerModal or similar (just add to repo) } +type ChatPageProps = { + toggle: (toggled?: boolean) => void; + documentSidebarInitialWidth?: number; + sidebarVisible: boolean; + firstMessage?: string; + initialFolders?: any; + initialFiles?: any; +}; + // --- // File Attachment Behavior in ChatPage // @@ -171,14 +180,7 @@ export function ChatPage({ firstMessage, initialFolders, initialFiles, -}: { - toggle: (toggled?: boolean) => void; - documentSidebarInitialWidth?: number; - sidebarVisible: boolean; - firstMessage?: string; - initialFolders?: any; - initialFiles?: any; -}) { +}: ChatPageProps) { const router = useRouter(); const searchParams = useSearchParams(); From 8032f91b81ea2894a27f13f0860cf0fcab990964 Mon Sep 17 00:00:00 2001 From: Raunak Bhagat Date: Wed, 23 Jul 2025 11:35:42 -0700 Subject: [PATCH 2/7] Add new AppProvider --- web/src/app/providers.tsx | 95 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) diff --git a/web/src/app/providers.tsx b/web/src/app/providers.tsx index bf5a296abae..161605b8078 100644 --- a/web/src/app/providers.tsx +++ b/web/src/app/providers.tsx @@ -2,6 +2,17 @@ import posthog from "posthog-js"; import { PostHogProvider } from "posthog-js/react"; import { useEffect } from "react"; +import React, { createContext, useContext, useState, useMemo } from "react"; +import { HistorySidebar } from "./chat/sessionSidebar/HistorySidebar"; +import { + DropdownMenu, + DropdownMenuTrigger, + DropdownMenuContent, + DropdownMenuRadioGroup, + DropdownMenuRadioItem, +} from "@/components/ui/dropdown-menu"; + +// PostHog context const isPostHogEnabled = !!( process.env.NEXT_PUBLIC_POSTHOG_KEY && process.env.NEXT_PUBLIC_POSTHOG_HOST @@ -24,3 +35,87 @@ export function PHProvider({ children }: { children: React.ReactNode }) { return {children}; } + +// AppMode context + +export type AppMode = "auto" | "search" | "chat"; + +interface AppModeContextType { + appMode: AppMode; + setAppMode: (mode: AppMode) => void; +} + +const AppModeContext = createContext(undefined); + +type AppProviderProps = { children: React.ReactNode }; + +export function AppProvider({ children }: AppProviderProps) { + // Sidebar visibility state (controlled here only) + const [sidebarVisible, setSidebarVisible] = useState(false); + // App mode state + const [appMode, setAppMode] = useState("auto"); + + // Memoize context value + const appModeCtx = useMemo(() => ({ appMode, setAppMode }), [appMode]); + + return ( + +
+ {/* Sidebar (visibility controlled here) */} +
+ setSidebarVisible(false)} + setShowAssistantsModal={() => {}} + toggled={sidebarVisible} + toggleSidebar={() => setSidebarVisible((v) => !v)} + /> +
+ {/* Main content area */} +
+ {/* App mode dropdown */} +
+ + + + + + setAppMode(v as AppMode)} + > + + Auto + + + Search + + + Chat + + + + + +
+
{children}
+
+
+
+ ); +} + +export function useAppMode() { + const ctx = useContext(AppModeContext); + if (!ctx) throw new Error("useAppMode must be used within AppProvider"); + return ctx; +} From 0341d45aa7b503428688527a5126fe23390fc52d Mon Sep 17 00:00:00 2001 From: Raunak Bhagat Date: Wed, 23 Jul 2025 11:53:46 -0700 Subject: [PATCH 3/7] Remove unused component file --- web/src/app/chat/sessionSidebar/ChatGroup.tsx | 20 ------------------- 1 file changed, 20 deletions(-) delete mode 100644 web/src/app/chat/sessionSidebar/ChatGroup.tsx diff --git a/web/src/app/chat/sessionSidebar/ChatGroup.tsx b/web/src/app/chat/sessionSidebar/ChatGroup.tsx deleted file mode 100644 index c9b98b25bd2..00000000000 --- a/web/src/app/chat/sessionSidebar/ChatGroup.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { useRouter } from "next/router"; -import { ChatSession } from "../interfaces"; - -export const ChatGroup = ({ - groupName, - toggled, - chatSessions, -}: { - groupName: string; - toggled: boolean; - chatSessions: ChatSession[]; -}) => { - const router = useRouter(); - - return toggled ? ( -
-

{groupName}

-
- ) : null; -}; From 8ea8558a3f53e9dd624cbf98ff83aed12ea88fd9 Mon Sep 17 00:00:00 2001 From: Raunak Bhagat Date: Wed, 23 Jul 2025 12:40:17 -0700 Subject: [PATCH 4/7] Move `sessionSidebar` to be inside of `components` instead of `app/chat` --- web/src/app/assistants/SidebarWrapper.tsx | 2 +- web/src/app/chat/ChatPage.tsx | 2 +- web/src/app/chat/folders/FolderList.tsx | 2 +- web/src/app/providers.tsx | 2 +- web/src/components/UserDropdown.tsx | 2 +- web/src/components/chat/Header.tsx | 2 +- web/src/components/header/LogoWithText.tsx | 2 +- .../sessionSidebar/ChatSessionDisplay.tsx | 6 +++--- .../sessionSidebar/HistorySidebar.tsx | 6 +++--- .../chat => components}/sessionSidebar/PagesTab.tsx | 10 +++++----- .../{app/chat => components}/sessionSidebar/types.ts | 0 11 files changed, 18 insertions(+), 18 deletions(-) rename web/src/{app/chat => components}/sessionSidebar/ChatSessionDisplay.tsx (98%) rename web/src/{app/chat => components}/sessionSidebar/HistorySidebar.tsx (98%) rename web/src/{app/chat => components}/sessionSidebar/PagesTab.tsx (98%) rename web/src/{app/chat => components}/sessionSidebar/types.ts (100%) diff --git a/web/src/app/assistants/SidebarWrapper.tsx b/web/src/app/assistants/SidebarWrapper.tsx index 3b700b34f46..afa2e539372 100644 --- a/web/src/app/assistants/SidebarWrapper.tsx +++ b/web/src/app/assistants/SidebarWrapper.tsx @@ -9,7 +9,7 @@ import { useRouter } from "next/navigation"; import FixedLogo from "../../components/logo/FixedLogo"; import { SettingsContext } from "@/components/settings/SettingsProvider"; import { useChatContext } from "@/components/context/ChatContext"; -import { HistorySidebar } from "../chat/sessionSidebar/HistorySidebar"; +import { HistorySidebar } from "@/components/sessionSidebar/HistorySidebar"; import { useAssistants } from "@/components/context/AssistantsContext"; import AssistantModal from "./mine/AssistantModal"; import { useSidebarShortcut } from "@/lib/browserUtilities"; diff --git a/web/src/app/chat/ChatPage.tsx b/web/src/app/chat/ChatPage.tsx index 44401725e0f..089a4928f06 100644 --- a/web/src/app/chat/ChatPage.tsx +++ b/web/src/app/chat/ChatPage.tsx @@ -28,7 +28,7 @@ import { import Prism from "prismjs"; import Cookies from "js-cookie"; -import { HistorySidebar } from "./sessionSidebar/HistorySidebar"; +import { HistorySidebar } from "@/components/sessionSidebar/HistorySidebar"; import { MinimalPersonaSnapshot } from "../admin/assistants/interfaces"; import { HealthCheckBanner } from "@/components/health/healthcheck"; import { diff --git a/web/src/app/chat/folders/FolderList.tsx b/web/src/app/chat/folders/FolderList.tsx index f92a0450d67..179b0b93866 100644 --- a/web/src/app/chat/folders/FolderList.tsx +++ b/web/src/app/chat/folders/FolderList.tsx @@ -2,7 +2,7 @@ import React, { useState, useEffect, useRef } from "react"; import { Folder } from "./interfaces"; -import { ChatSessionDisplay } from "../sessionSidebar/ChatSessionDisplay"; // Ensure this is correctly imported +import { ChatSessionDisplay } from "@/components/sessionSidebar/ChatSessionDisplay"; // Ensure this is correctly imported import { FiChevronDown, FiChevronRight, diff --git a/web/src/app/providers.tsx b/web/src/app/providers.tsx index 161605b8078..a7f725918b9 100644 --- a/web/src/app/providers.tsx +++ b/web/src/app/providers.tsx @@ -3,7 +3,7 @@ import posthog from "posthog-js"; import { PostHogProvider } from "posthog-js/react"; import { useEffect } from "react"; import React, { createContext, useContext, useState, useMemo } from "react"; -import { HistorySidebar } from "./chat/sessionSidebar/HistorySidebar"; +import { HistorySidebar } from "@/components/sessionSidebar/HistorySidebar"; import { DropdownMenu, DropdownMenuTrigger, diff --git a/web/src/components/UserDropdown.tsx b/web/src/components/UserDropdown.tsx index 2fadb894991..c33e9bbdd0c 100644 --- a/web/src/components/UserDropdown.tsx +++ b/web/src/components/UserDropdown.tsx @@ -10,7 +10,7 @@ import { Popover } from "./popover/Popover"; import { LOGOUT_DISABLED } from "@/lib/constants"; import { SettingsContext } from "./settings/SettingsProvider"; import { BellIcon, LightSettingsIcon, UserIcon } from "./icons/icons"; -import { pageType } from "@/app/chat/sessionSidebar/types"; +import { pageType } from "@/components/sessionSidebar/types"; import { NavigationItem, Notification } from "@/app/admin/settings/interfaces"; import DynamicFaIcon, { preloadIcons } from "./icons/DynamicFaIcon"; import { useUser } from "./user/UserProvider"; diff --git a/web/src/components/chat/Header.tsx b/web/src/components/chat/Header.tsx index fbbeaad5227..5dfc2ee7623 100644 --- a/web/src/components/chat/Header.tsx +++ b/web/src/components/chat/Header.tsx @@ -4,7 +4,7 @@ import { FiShare2 } from "react-icons/fi"; import { SetStateAction, useContext, useEffect } from "react"; import { ChatSession } from "@/app/chat/interfaces"; import Link from "next/link"; -import { pageType } from "@/app/chat/sessionSidebar/types"; +import { pageType } from "@/components/sessionSidebar/types"; import { useRouter } from "next/navigation"; import { ChatBanner } from "@/app/chat/ChatBanner"; import LogoWithText from "../header/LogoWithText"; diff --git a/web/src/components/header/LogoWithText.tsx b/web/src/components/header/LogoWithText.tsx index 89ec3346824..46177ab97bb 100644 --- a/web/src/components/header/LogoWithText.tsx +++ b/web/src/components/header/LogoWithText.tsx @@ -9,7 +9,7 @@ import { TooltipProvider, TooltipTrigger, } from "@/components/ui/tooltip"; -import { pageType } from "@/app/chat/sessionSidebar/types"; +import { pageType } from "@/components/sessionSidebar/types"; import { Logo } from "../logo/Logo"; import Link from "next/link"; import { LogoComponent } from "@/components/logo/FixedLogo"; diff --git a/web/src/app/chat/sessionSidebar/ChatSessionDisplay.tsx b/web/src/components/sessionSidebar/ChatSessionDisplay.tsx similarity index 98% rename from web/src/app/chat/sessionSidebar/ChatSessionDisplay.tsx rename to web/src/components/sessionSidebar/ChatSessionDisplay.tsx index bdcfaeb74a9..c6f64d14741 100644 --- a/web/src/app/chat/sessionSidebar/ChatSessionDisplay.tsx +++ b/web/src/components/sessionSidebar/ChatSessionDisplay.tsx @@ -1,13 +1,13 @@ "use client"; import { useRouter } from "next/navigation"; -import { ChatSession } from "../interfaces"; +import { ChatSession } from "@/app/chat/interfaces"; import { useState, useEffect, useContext, useRef, useCallback } from "react"; import { deleteChatSession, getChatRetentionInfo, renameChatSession, -} from "../lib"; +} from "@/app/chat/lib"; import { BasicSelectable } from "@/components/BasicClickable"; import Link from "next/link"; import { @@ -20,7 +20,7 @@ import { } from "react-icons/fi"; import { DefaultDropdownElement } from "@/components/Dropdown"; import { Popover } from "@/components/popover/Popover"; -import { ShareChatSessionModal } from "../modal/ShareChatSessionModal"; +import { ShareChatSessionModal } from "@/app/chat/modal/ShareChatSessionModal"; import { CHAT_SESSION_ID_KEY, FOLDER_ID_KEY } from "@/lib/drag/constants"; import { SettingsContext } from "@/components/settings/SettingsProvider"; import { DragHandle } from "@/components/table/DragHandle"; diff --git a/web/src/app/chat/sessionSidebar/HistorySidebar.tsx b/web/src/components/sessionSidebar/HistorySidebar.tsx similarity index 98% rename from web/src/app/chat/sessionSidebar/HistorySidebar.tsx rename to web/src/components/sessionSidebar/HistorySidebar.tsx index 0905a68bdb5..130ea332315 100644 --- a/web/src/app/chat/sessionSidebar/HistorySidebar.tsx +++ b/web/src/components/sessionSidebar/HistorySidebar.tsx @@ -15,8 +15,8 @@ import { } from "@/components/ui/tooltip"; import { useRouter, useSearchParams } from "next/navigation"; -import { ChatSession } from "../interfaces"; -import { Folder } from "../folders/interfaces"; +import { ChatSession } from "@/app/chat/interfaces"; +import { Folder } from "@/app/chat/folders/interfaces"; import { SettingsContext } from "@/components/settings/SettingsProvider"; import { @@ -31,7 +31,7 @@ import { MinimalPersonaSnapshot } from "@/app/admin/assistants/interfaces"; import { DragEndEvent } from "@dnd-kit/core"; import { useAssistants } from "@/components/context/AssistantsContext"; import { AssistantIcon } from "@/components/assistants/AssistantIcon"; -import { buildChatUrl } from "../lib"; +import { buildChatUrl } from "@/app/chat/lib"; import { reorderPinnedAssistants } from "@/lib/assistants/updateAssistantPreferences"; import { useUser } from "@/components/user/UserProvider"; import { DragHandle } from "@/components/table/DragHandle"; diff --git a/web/src/app/chat/sessionSidebar/PagesTab.tsx b/web/src/components/sessionSidebar/PagesTab.tsx similarity index 98% rename from web/src/app/chat/sessionSidebar/PagesTab.tsx rename to web/src/components/sessionSidebar/PagesTab.tsx index f282dd03e4c..c433968a7d9 100644 --- a/web/src/app/chat/sessionSidebar/PagesTab.tsx +++ b/web/src/components/sessionSidebar/PagesTab.tsx @@ -1,20 +1,20 @@ -import { ChatSession } from "../interfaces"; +import { ChatSession } from "@/app/chat/interfaces"; import { createFolder, updateFolderName, deleteFolder, addChatToFolder, updateFolderDisplayPriorities, -} from "../folders/FolderManagement"; -import { Folder } from "../folders/interfaces"; +} from "@/app/chat/folders/FolderManagement"; +import { Folder } from "@/app/chat/folders/interfaces"; import { usePopup } from "@/components/admin/connectors/Popup"; import { useRouter } from "next/navigation"; import { FiPlus, FiCheck, FiX } from "react-icons/fi"; -import { FolderDropdown } from "../folders/FolderDropdown"; +import { FolderDropdown } from "@/app/chat/folders/FolderDropdown"; import { ChatSessionDisplay } from "./ChatSessionDisplay"; import { useState, useCallback, useRef, useContext, useEffect } from "react"; import { Caret } from "@/components/icons/icons"; -import { groupSessionsByDateRange } from "../lib"; +import { groupSessionsByDateRange } from "@/app/chat/lib"; import React from "react"; import { Tooltip, diff --git a/web/src/app/chat/sessionSidebar/types.ts b/web/src/components/sessionSidebar/types.ts similarity index 100% rename from web/src/app/chat/sessionSidebar/types.ts rename to web/src/components/sessionSidebar/types.ts From 9d86e6a345e50386567ec40396dffb4013e5645b Mon Sep 17 00:00:00 2001 From: Raunak Bhagat Date: Wed, 23 Jul 2025 12:51:56 -0700 Subject: [PATCH 5/7] Change name of `sessionSidebar` to `sidebar` --- web/src/app/assistants/SidebarWrapper.tsx | 2 +- web/src/app/chat/ChatPage.tsx | 2 +- web/src/app/chat/folders/FolderList.tsx | 2 +- web/src/app/providers.tsx | 2 +- web/src/components/UserDropdown.tsx | 2 +- web/src/components/chat/Header.tsx | 2 +- web/src/components/header/LogoWithText.tsx | 2 +- .../{sessionSidebar => sidebar}/ChatSessionDisplay.tsx | 0 .../components/{sessionSidebar => sidebar}/HistorySidebar.tsx | 0 web/src/components/{sessionSidebar => sidebar}/PagesTab.tsx | 0 web/src/components/{sessionSidebar => sidebar}/types.ts | 0 11 files changed, 7 insertions(+), 7 deletions(-) rename web/src/components/{sessionSidebar => sidebar}/ChatSessionDisplay.tsx (100%) rename web/src/components/{sessionSidebar => sidebar}/HistorySidebar.tsx (100%) rename web/src/components/{sessionSidebar => sidebar}/PagesTab.tsx (100%) rename web/src/components/{sessionSidebar => sidebar}/types.ts (100%) diff --git a/web/src/app/assistants/SidebarWrapper.tsx b/web/src/app/assistants/SidebarWrapper.tsx index afa2e539372..f8c9f8607e2 100644 --- a/web/src/app/assistants/SidebarWrapper.tsx +++ b/web/src/app/assistants/SidebarWrapper.tsx @@ -9,7 +9,7 @@ import { useRouter } from "next/navigation"; import FixedLogo from "../../components/logo/FixedLogo"; import { SettingsContext } from "@/components/settings/SettingsProvider"; import { useChatContext } from "@/components/context/ChatContext"; -import { HistorySidebar } from "@/components/sessionSidebar/HistorySidebar"; +import { HistorySidebar } from "@/components/sidebar/HistorySidebar"; import { useAssistants } from "@/components/context/AssistantsContext"; import AssistantModal from "./mine/AssistantModal"; import { useSidebarShortcut } from "@/lib/browserUtilities"; diff --git a/web/src/app/chat/ChatPage.tsx b/web/src/app/chat/ChatPage.tsx index 089a4928f06..475e0102d58 100644 --- a/web/src/app/chat/ChatPage.tsx +++ b/web/src/app/chat/ChatPage.tsx @@ -28,7 +28,7 @@ import { import Prism from "prismjs"; import Cookies from "js-cookie"; -import { HistorySidebar } from "@/components/sessionSidebar/HistorySidebar"; +import { HistorySidebar } from "@/components/sidebar/HistorySidebar"; import { MinimalPersonaSnapshot } from "../admin/assistants/interfaces"; import { HealthCheckBanner } from "@/components/health/healthcheck"; import { diff --git a/web/src/app/chat/folders/FolderList.tsx b/web/src/app/chat/folders/FolderList.tsx index 179b0b93866..89d9f08a756 100644 --- a/web/src/app/chat/folders/FolderList.tsx +++ b/web/src/app/chat/folders/FolderList.tsx @@ -2,7 +2,7 @@ import React, { useState, useEffect, useRef } from "react"; import { Folder } from "./interfaces"; -import { ChatSessionDisplay } from "@/components/sessionSidebar/ChatSessionDisplay"; // Ensure this is correctly imported +import { ChatSessionDisplay } from "@/components/sidebar/ChatSessionDisplay"; // Ensure this is correctly imported import { FiChevronDown, FiChevronRight, diff --git a/web/src/app/providers.tsx b/web/src/app/providers.tsx index a7f725918b9..ce94a35b09b 100644 --- a/web/src/app/providers.tsx +++ b/web/src/app/providers.tsx @@ -3,7 +3,7 @@ import posthog from "posthog-js"; import { PostHogProvider } from "posthog-js/react"; import { useEffect } from "react"; import React, { createContext, useContext, useState, useMemo } from "react"; -import { HistorySidebar } from "@/components/sessionSidebar/HistorySidebar"; +import { HistorySidebar } from "@/components/sidebar/HistorySidebar"; import { DropdownMenu, DropdownMenuTrigger, diff --git a/web/src/components/UserDropdown.tsx b/web/src/components/UserDropdown.tsx index c33e9bbdd0c..56631ba3af6 100644 --- a/web/src/components/UserDropdown.tsx +++ b/web/src/components/UserDropdown.tsx @@ -10,7 +10,7 @@ import { Popover } from "./popover/Popover"; import { LOGOUT_DISABLED } from "@/lib/constants"; import { SettingsContext } from "./settings/SettingsProvider"; import { BellIcon, LightSettingsIcon, UserIcon } from "./icons/icons"; -import { pageType } from "@/components/sessionSidebar/types"; +import { pageType } from "@/components/sidebar/types"; import { NavigationItem, Notification } from "@/app/admin/settings/interfaces"; import DynamicFaIcon, { preloadIcons } from "./icons/DynamicFaIcon"; import { useUser } from "./user/UserProvider"; diff --git a/web/src/components/chat/Header.tsx b/web/src/components/chat/Header.tsx index 5dfc2ee7623..afae5ed19d4 100644 --- a/web/src/components/chat/Header.tsx +++ b/web/src/components/chat/Header.tsx @@ -4,7 +4,7 @@ import { FiShare2 } from "react-icons/fi"; import { SetStateAction, useContext, useEffect } from "react"; import { ChatSession } from "@/app/chat/interfaces"; import Link from "next/link"; -import { pageType } from "@/components/sessionSidebar/types"; +import { pageType } from "@/components/sidebar/types"; import { useRouter } from "next/navigation"; import { ChatBanner } from "@/app/chat/ChatBanner"; import LogoWithText from "../header/LogoWithText"; diff --git a/web/src/components/header/LogoWithText.tsx b/web/src/components/header/LogoWithText.tsx index 46177ab97bb..98a304b841c 100644 --- a/web/src/components/header/LogoWithText.tsx +++ b/web/src/components/header/LogoWithText.tsx @@ -9,7 +9,7 @@ import { TooltipProvider, TooltipTrigger, } from "@/components/ui/tooltip"; -import { pageType } from "@/components/sessionSidebar/types"; +import { pageType } from "@/components/sidebar/types"; import { Logo } from "../logo/Logo"; import Link from "next/link"; import { LogoComponent } from "@/components/logo/FixedLogo"; diff --git a/web/src/components/sessionSidebar/ChatSessionDisplay.tsx b/web/src/components/sidebar/ChatSessionDisplay.tsx similarity index 100% rename from web/src/components/sessionSidebar/ChatSessionDisplay.tsx rename to web/src/components/sidebar/ChatSessionDisplay.tsx diff --git a/web/src/components/sessionSidebar/HistorySidebar.tsx b/web/src/components/sidebar/HistorySidebar.tsx similarity index 100% rename from web/src/components/sessionSidebar/HistorySidebar.tsx rename to web/src/components/sidebar/HistorySidebar.tsx diff --git a/web/src/components/sessionSidebar/PagesTab.tsx b/web/src/components/sidebar/PagesTab.tsx similarity index 100% rename from web/src/components/sessionSidebar/PagesTab.tsx rename to web/src/components/sidebar/PagesTab.tsx diff --git a/web/src/components/sessionSidebar/types.ts b/web/src/components/sidebar/types.ts similarity index 100% rename from web/src/components/sessionSidebar/types.ts rename to web/src/components/sidebar/types.ts From 7ca53ccca50bc56b89823701c6f7afd04b36fa23 Mon Sep 17 00:00:00 2001 From: Raunak Bhagat Date: Wed, 23 Jul 2025 12:56:36 -0700 Subject: [PATCH 6/7] Remove `AppModeProvider` --- web/src/app/providers.tsx | 99 ++------------------------------------- 1 file changed, 3 insertions(+), 96 deletions(-) diff --git a/web/src/app/providers.tsx b/web/src/app/providers.tsx index ce94a35b09b..c278694203d 100644 --- a/web/src/app/providers.tsx +++ b/web/src/app/providers.tsx @@ -2,23 +2,14 @@ import posthog from "posthog-js"; import { PostHogProvider } from "posthog-js/react"; import { useEffect } from "react"; -import React, { createContext, useContext, useState, useMemo } from "react"; -import { HistorySidebar } from "@/components/sidebar/HistorySidebar"; -import { - DropdownMenu, - DropdownMenuTrigger, - DropdownMenuContent, - DropdownMenuRadioGroup, - DropdownMenuRadioItem, -} from "@/components/ui/dropdown-menu"; - -// PostHog context const isPostHogEnabled = !!( process.env.NEXT_PUBLIC_POSTHOG_KEY && process.env.NEXT_PUBLIC_POSTHOG_HOST ); -export function PHProvider({ children }: { children: React.ReactNode }) { +type PHProviderProps = { children: React.ReactNode }; + +export function PHProvider({ children }: PHProviderProps) { useEffect(() => { if (isPostHogEnabled) { posthog.init(process.env.NEXT_PUBLIC_POSTHOG_KEY!, { @@ -35,87 +26,3 @@ export function PHProvider({ children }: { children: React.ReactNode }) { return {children}; } - -// AppMode context - -export type AppMode = "auto" | "search" | "chat"; - -interface AppModeContextType { - appMode: AppMode; - setAppMode: (mode: AppMode) => void; -} - -const AppModeContext = createContext(undefined); - -type AppProviderProps = { children: React.ReactNode }; - -export function AppProvider({ children }: AppProviderProps) { - // Sidebar visibility state (controlled here only) - const [sidebarVisible, setSidebarVisible] = useState(false); - // App mode state - const [appMode, setAppMode] = useState("auto"); - - // Memoize context value - const appModeCtx = useMemo(() => ({ appMode, setAppMode }), [appMode]); - - return ( - -
- {/* Sidebar (visibility controlled here) */} -
- setSidebarVisible(false)} - setShowAssistantsModal={() => {}} - toggled={sidebarVisible} - toggleSidebar={() => setSidebarVisible((v) => !v)} - /> -
- {/* Main content area */} -
- {/* App mode dropdown */} -
- - - - - - setAppMode(v as AppMode)} - > - - Auto - - - Search - - - Chat - - - - - -
-
{children}
-
-
-
- ); -} - -export function useAppMode() { - const ctx = useContext(AppModeContext); - if (!ctx) throw new Error("useAppMode must be used within AppProvider"); - return ctx; -} From 063b88f45329e0d770425332a5cccbbdc9ec1585 Mon Sep 17 00:00:00 2001 From: Raunak Bhagat Date: Wed, 23 Jul 2025 13:09:15 -0700 Subject: [PATCH 7/7] Fix bug in how the cookies were set --- web/src/app/assistants/SidebarWrapper.tsx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/web/src/app/assistants/SidebarWrapper.tsx b/web/src/app/assistants/SidebarWrapper.tsx index f8c9f8607e2..9d3b6d78265 100644 --- a/web/src/app/assistants/SidebarWrapper.tsx +++ b/web/src/app/assistants/SidebarWrapper.tsx @@ -35,11 +35,9 @@ export default function SidebarWrapper({ const toggleSidebar = useCallback(() => { Cookies.set( SIDEBAR_TOGGLED_COOKIE_NAME, - String(!sidebarVisible).toLocaleLowerCase() - ), - { - path: "/", - }; + String(!sidebarVisible).toLocaleLowerCase(), + { path: "/" } + ); setSidebarVisible((sidebarVisible) => !sidebarVisible); }, [sidebarVisible]);