diff --git a/frontend/src/components/UnifiedChat.tsx b/frontend/src/components/UnifiedChat.tsx index a61e693f1..6692b5ec1 100644 --- a/frontend/src/components/UnifiedChat.tsx +++ b/frontend/src/components/UnifiedChat.tsx @@ -36,7 +36,9 @@ import { Search, Loader2, Globe, - Brain + Brain, + Maximize2, + Minimize2 } from "lucide-react"; import RecordRTC from "recordrtc"; import { useQueryClient } from "@tanstack/react-query"; @@ -663,6 +665,25 @@ export function UnifiedChat() { // Web search toggle state const [isWebSearchEnabled, setIsWebSearchEnabled] = useState(false); + // Fullscreen mode for power users - persisted in localStorage + const [isFullscreen, setIsFullscreen] = useState(() => { + return localStorage.getItem("chatFullscreen") === "true"; + }); + const [isFullscreenAnimating, setIsFullscreenAnimating] = useState(false); + + // Save fullscreen preference to localStorage when it changes + useEffect(() => { + localStorage.setItem("chatFullscreen", isFullscreen.toString()); + }, [isFullscreen]); + + // Toggle fullscreen with animation + const toggleFullscreen = useCallback(() => { + setIsFullscreenAnimating(true); + setIsFullscreen((prev) => !prev); + // Reset animation state after transition completes + setTimeout(() => setIsFullscreenAnimating(false), 300); + }, []); + // Easter egg state (for future features) const [logoTapCount, setLogoTapCount] = useState(0); const tapTimeoutRef = useRef(null); @@ -2355,35 +2376,52 @@ export function UnifiedChat() { {/* Input Area - centered when no messages, fixed at bottom when chatting */} {messages.length === 0 && !chatId ? ( // Centered input for new chat -
-
- {/* Logo section - raised higher */} -
- {/* Logo with Maple text - combined image */} -
- Maple - Maple -
+
+
+ {/* Logo section - hidden in fullscreen */} + {!isFullscreen && ( +
+ {/* Logo with Maple text - combined image */} +
+ Maple + Maple +
- {/* Subtitle right under the logo */} -

Private AI Chat

-
+ {/* Subtitle right under the logo */} +

Private AI Chat

+
+ )} {/* Main prompt section with more emphasis */} -
-

How can I help you today?

+
+ {/* "How can I help you today?" - hidden in fullscreen */} + {!isFullscreen && ( +

+ How can I help you today? +

+ )} {/* Input form */}
@@ -2438,7 +2476,25 @@ export function UnifiedChat() { )} {/* Main input container with purple focus border */} -
+
+ {/* Fullscreen toggle button - top right corner */} + +