From 00a756825cb8481e225cd62b3d3c1c520078efbe Mon Sep 17 00:00:00 2001 From: Jonathan Dobson Date: Thu, 25 Sep 2025 14:05:22 -0400 Subject: [PATCH] standardize browser sessions ui, and prevent constant reloads of stream (#3527) --- .../routes/browserSession/BrowserSession.tsx | 58 ++++++++++--------- 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/skyvern-frontend/src/routes/browserSession/BrowserSession.tsx b/skyvern-frontend/src/routes/browserSession/BrowserSession.tsx index 5ac6e6d0..7d6bd669 100644 --- a/skyvern-frontend/src/routes/browserSession/BrowserSession.tsx +++ b/skyvern-frontend/src/routes/browserSession/BrowserSession.tsx @@ -5,13 +5,17 @@ import { useQuery } from "@tanstack/react-query"; import { getClient } from "@/api/AxiosClient"; import { BrowserStream } from "@/components/BrowserStream"; import { LogoMinimized } from "@/components/LogoMinimized"; +import { SwitchBar } from "@/components/SwitchBar"; import { useCredentialGetter } from "@/hooks/useCredentialGetter"; import { BrowserSessionVideo } from "./BrowserSessionVideo"; +import { cn } from "@/util/utils"; + +type TabName = "stream" | "videos"; function BrowserSession() { const { browserSessionId } = useParams(); const [hasBrowserSession, setHasBrowserSession] = useState(false); - const [activeTab, setActiveTab] = useState<"stream" | "videos">("stream"); + const [activeTab, setActiveTab] = useState("stream"); const credentialGetter = useCredentialGetter(); @@ -66,38 +70,40 @@ function BrowserSession() { {/* Tab Navigation */} -
- - -
+ setActiveTab(value as TabName)} + value={activeTab} + options={[ + { + label: "Stream", + value: "stream", + helpText: "The live stream of the browser session (if active).", + }, + { + label: "Recordings", + value: "videos", + helpText: "All recordings of this browser session.", + }, + ]} + /> {/* Tab Content */} -
- {activeTab === "stream" && ( +
+
- )} +
{activeTab === "videos" && }