| ... | @@ -142,6 +142,7 @@ import { | ... | @@ -142,6 +142,7 @@ import { |
| 142 | sortPinnedThreadsForSidebar, | 142 | sortPinnedThreadsForSidebar, |
| 143 | sortSettledThreadsForSidebar, | 143 | sortSettledThreadsForSidebar, |
| 144 | sortThreadsForSidebar, | 144 | sortThreadsForSidebar, |
| | 145 | useThreadJumpHintVisibility, |
| 145 | } from "./Sidebar.logic"; | 146 | } from "./Sidebar.logic"; |
| 146 | import { resolveLocalCheckoutBranchMismatch } from "./BranchToolbar.logic"; | 147 | import { resolveLocalCheckoutBranchMismatch } from "./BranchToolbar.logic"; |
| 147 | import { | 148 | import { |
| ... | @@ -2308,7 +2309,7 @@ export default function Sidebar() { | ... | @@ -2308,7 +2309,7 @@ export default function Sidebar() { |
| 2308 | } | 2309 | } |
| 2309 | return mapping; | 2310 | return mapping; |
| 2310 | }, [keybindings, orderedThreadKeys]); | 2311 | }, [keybindings, orderedThreadKeys]); |
| 2311 | const [showJumpHints, setShowJumpHints] = useState(false); | 2312 | const { showThreadJumpHints, updateThreadJumpHintsVisibility } = useThreadJumpHintVisibility(); |
| 2312 | | 2313 | |
| 2313 | // Settled threads are live shells, so opening one is plain navigation: | 2314 | // Settled threads are live shells, so opening one is plain navigation: |
| 2314 | // history stays readable without un-settling, and sending a message or | 2315 | // history stays readable without un-settling, and sending a message or |
| ... | @@ -3342,8 +3343,8 @@ export default function Sidebar() { | ... | @@ -3342,8 +3343,8 @@ export default function Sidebar() { |
| 3342 | }, | 3343 | }, |
| 3343 | ); | 3344 | ); |
| 3344 | useEffect(() => { | 3345 | useEffect(() => { |
| 3345 | setShowJumpHints(shouldShowJumpHintsNow); | 3346 | updateThreadJumpHintsVisibility(shouldShowJumpHintsNow); |
| 3346 | }, [shouldShowJumpHintsNow]); | 3347 | }, [shouldShowJumpHintsNow, updateThreadJumpHintsVisibility]); |
| 3347 | | 3348 | |
| 3348 | const attachListAutoAnimateRef = useCallback((node: HTMLUListElement | null) => { | 3349 | const attachListAutoAnimateRef = useCallback((node: HTMLUListElement | null) => { |
| 3349 | if (!node) return; | 3350 | if (!node) return; |
| ... | @@ -3721,7 +3722,9 @@ export default function Sidebar() { | ... | @@ -3721,7 +3722,9 @@ export default function Sidebar() { |
| 3721 | wokeAt={threadWokeAt(thread, { now: snoozeNow })} | 3722 | wokeAt={threadWokeAt(thread, { now: snoozeNow })} |
| 3722 | isActive={routeThreadKey === threadKey} | 3723 | isActive={routeThreadKey === threadKey} |
| 3723 | openPullRequestsInRightPanel={routeThreadRef !== null} | 3724 | openPullRequestsInRightPanel={routeThreadRef !== null} |
| 3724 | jumpLabel={showJumpHints ? (jumpLabelByKey.get(threadKey) ?? null) : null} | 3725 | jumpLabel={ |
| | 3726 | showThreadJumpHints ? (jumpLabelByKey.get(threadKey) ?? null) : null |
| | 3727 | } |
| 3725 | currentEnvironmentId={primaryEnvironmentId} | 3728 | currentEnvironmentId={primaryEnvironmentId} |
| 3726 | environmentLabel={environmentLabelById.get(thread.environmentId) ?? null} | 3729 | environmentLabel={environmentLabelById.get(thread.environmentId) ?? null} |
| 3727 | projectCwd={ | 3730 | projectCwd={ |