'use client'; import React, { useEffect, useRef, useState } from "react"; import { usePathname } from "next/navigation"; import Sidebar from "@/components/shell/Sidebar"; import TabBar from "@/components/shell/TabBar"; import SearchCommand from "@/components/SearchCommand"; import { cn } from "@/lib/utils"; import UpdateBanner from "@/components/UpdateBanner"; type AppShellProps = { user: User; watchlist: { symbol: string; company: string }[]; initialStocks: StockWithWatchlistStatus[]; children: React.ReactNode; }; const AppShell = ({ user, watchlist, initialStocks, children }: AppShellProps) => { const pathname = usePathname(); const [navOpen, setNavOpen] = useState(false); const workspaceRef = useRef(null); // The workspace is the scroll container, so reset it on navigation useEffect(() => { setNavOpen(false); workspaceRef.current?.scrollTo({ top: 0 }); }, [pathname]); return (
{navOpen && (
setNavOpen(false)} /> )}
setNavOpen(true)} />
{children}
); }; export default AppShell;