summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/pages/session
diff options
context:
space:
mode:
authorFilip <[email protected]>2026-02-25 15:57:13 +0100
committerGitHub <[email protected]>2026-02-25 08:57:13 -0600
commit45191ad144f6546c051fb3a94f9f3cb1e2c00ed3 (patch)
tree3bc16bef606b64c42f656fc59838baa2d204cbda /packages/app/src/pages/session
parent286992269623bcb410f0de89e128ff14361d5e97 (diff)
downloadopencode-45191ad144f6546c051fb3a94f9f3cb1e2c00ed3.tar.gz
opencode-45191ad144f6546c051fb3a94f9f3cb1e2c00ed3.zip
fix(app): keyboard navigation previous/next message (#15047)
Diffstat (limited to 'packages/app/src/pages/session')
-rw-r--r--packages/app/src/pages/session/message-timeline.tsx1
-rw-r--r--packages/app/src/pages/session/use-session-hash-scroll.ts4
2 files changed, 4 insertions, 1 deletions
diff --git a/packages/app/src/pages/session/message-timeline.tsx b/packages/app/src/pages/session/message-timeline.tsx
index 615d1a0be..b84109035 100644
--- a/packages/app/src/pages/session/message-timeline.tsx
+++ b/packages/app/src/pages/session/message-timeline.tsx
@@ -376,6 +376,7 @@ export function MessageTimeline(props: {
>
<Show when={showHeader()}>
<div
+ data-session-title
classList={{
"sticky top-0 z-30 bg-[linear-gradient(to_bottom,var(--background-stronger)_48px,transparent)]": true,
"w-full": true,
diff --git a/packages/app/src/pages/session/use-session-hash-scroll.ts b/packages/app/src/pages/session/use-session-hash-scroll.ts
index 555761ad1..b704e460b 100644
--- a/packages/app/src/pages/session/use-session-hash-scroll.ts
+++ b/packages/app/src/pages/session/use-session-hash-scroll.ts
@@ -45,7 +45,9 @@ export const useSessionHashScroll = (input: {
const a = el.getBoundingClientRect()
const b = root.getBoundingClientRect()
- const top = a.top - b.top + root.scrollTop
+ const sticky = root.querySelector("[data-session-title]")
+ const inset = sticky instanceof HTMLElement ? sticky.offsetHeight : 0
+ const top = Math.max(0, a.top - b.top + root.scrollTop - inset)
root.scrollTo({ top, behavior })
return true
}