From f8d215679a9b77b0937cc708bb675dc1cf06a41e Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Wed, 6 May 2026 03:45:56 +0200 Subject: [PATCH] Refactor: Clean up chat state management by removing obsolete scroll and session tracking logic --- src/App.jsx | 33 --------------------------------- 1 file changed, 33 deletions(-) diff --git a/src/App.jsx b/src/App.jsx index 148fc68..429301f 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -750,21 +750,6 @@ async function regenerateFromIndex(index, overrideUserText = null) { } - // Persist userScrolledUp state per session + live ref for closures (streaming) - const [userScrolledUpState, setUserScrolledUpState] = useState({}); - const userScrolledUpRef = useRef({}); - - // When a response arrives in a non-active chat, remember to scroll to the new ASSISTANT message on open - const [pendingScrollToLastUser, setPendingScrollToLastUser] = useState({}); // { [sessionId]: assistantMsgId } - - // Live per-session scrollTop tracker to avoid races - const scrollTopsRef = useRef({}); - // Live per-session previous scrollTop tracker to detect scroll direction - const prevScrollTopsRef = useRef({}); - - // Tip state: { [sessionId]: messageId } - const [newMsgTip, setNewMsgTip] = useState({}); - // Collapse state per user message: { [msgKey]: boolean } — true means "collapsed" const [collapsedUserMsgs, setCollapsedUserMsgs] = useState({}); @@ -801,22 +786,7 @@ async function regenerateFromIndex(index, overrideUserText = null) { setCollapsedUserMsgs(prev => ({ ...prev, [key]: !(prev[key] ?? true) })); } - const setUserScrolledUp = React.useCallback((sessionId, value) => { - setUserScrolledUpState(prev => { - const next = { ...prev, [sessionId]: value }; - userScrolledUpRef.current = next; - return next; - }); - }, []); - const activeRequestRef = useRef(null); - const justSentMessage = useRef(false); - const lastSentSessionRef = useRef(null); - const activeSessionIdRef = useRef(activeSessionId); - useEffect(() => { - activeSessionIdRef.current = activeSessionId; - }, [activeSessionId]); - const beginCancelableRequest = React.useCallback((sessionId) => { const controller = new AbortController() activeRequestRef.current = { controller, sessionId } @@ -844,9 +814,6 @@ async function regenerateFromIndex(index, overrideUserText = null) { } }, []) - // Flag to ensure we only restore once per open of a chat - const restoredForRef = useRef(null); - // Sidebar resizing state const [sidebarWidth, setSidebarWidth] = useState(230); const [isResizing, setIsResizing] = useState(false);