From a95da22a2ff09c207c1667afee3b0db7b0a56031 Mon Sep 17 00:00:00 2001 From: Yufeng He <40085740+he-yufeng@users.noreply.github.com> Date: Wed, 20 May 2026 23:40:39 +0800 Subject: [PATCH] fix(web): open archived sessions from sidebar --- web/src/App.tsx | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/web/src/App.tsx b/web/src/App.tsx index f387c6c57..675df1aae 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -96,8 +96,10 @@ function App() { } = sessionsHook; const currentSession = useMemo( - () => sessions.find((session) => session.sessionId === selectedSessionId), - [sessions, selectedSessionId], + () => + sessions.find((session) => session.sessionId === selectedSessionId) ?? + archivedSessions.find((session) => session.sessionId === selectedSessionId), + [sessions, archivedSessions, selectedSessionId], ); const [streamStatus, setStreamStatus] = useState("ready"); @@ -226,23 +228,32 @@ function App() { // Validate session exists once session list loads, clear URL if not found useEffect(() => { - if (sessions.length === 0 || !selectedSessionId) { + if ((sessions.length === 0 && archivedSessions.length === 0) || !selectedSessionId) { return; } - if (searchQuery.trim() || hasMoreSessions) { + if (searchQuery.trim() || hasMoreSessions || hasMoreArchivedSessions || isLoadingArchived) { return; } - const sessionExists = sessions.some( - (s) => s.sessionId === selectedSessionId, - ); + const sessionExists = + sessions.some((s) => s.sessionId === selectedSessionId) || + archivedSessions.some((s) => s.sessionId === selectedSessionId); if (!sessionExists) { console.log("[App] Session from URL not found, clearing selection"); updateUrlWithSession(null); selectSession(""); } - }, [sessions, selectedSessionId, selectSession, hasMoreSessions, searchQuery]); + }, [ + sessions, + archivedSessions, + selectedSessionId, + selectSession, + hasMoreSessions, + hasMoreArchivedSessions, + isLoadingArchived, + searchQuery, + ]); // Update URL when selected session changes useEffect(() => {