fix(page-controller): apply scroll direction to pixels parameter

Two bugs in the scroll direction logic:

1. Vertical scroll with `pixels` ignores the `down` boolean because the
   `??` operator bypasses the direction multiplier when pixels is provided.
   Fix: move the direction multiplier outside the `??` so it applies to
   both the pixels and numPages paths.

2. Horizontal scroll with `pixels` applies direction twice - once in
   PageController.ts and again in actions.ts - causing a double negation
   that reverses the intended direction. Fix: remove the redundant
   direction logic from actions.ts since PageController already signs
   the scroll amount.

Also removes the now-unused `down` and `right` parameters from the
scrollVertically() and scrollHorizontally() action functions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Matt Van Horn
2026-03-21 08:38:32 -07:00
parent 80e96d0b9e
commit 005bc8ab44
2 changed files with 7 additions and 15 deletions

View File

@@ -231,11 +231,7 @@ export async function scrollIntoViewIfNeeded(element: Element) {
}
}
export async function scrollVertically(
down: boolean,
scroll_amount: number,
element?: HTMLElement | null
) {
export async function scrollVertically(scroll_amount: number, element?: HTMLElement | null) {
// Element-specific scrolling if element is provided
if (element) {
const targetElement = element
@@ -359,11 +355,7 @@ export async function scrollVertically(
}
}
export async function scrollHorizontally(
right: boolean,
scroll_amount: number,
element?: HTMLElement | null
) {
export async function scrollHorizontally(scroll_amount: number, element?: HTMLElement | null) {
// Element-specific scrolling if element is provided
if (element) {
const targetElement = element
@@ -372,7 +364,7 @@ export async function scrollHorizontally(
let scrolledElement: HTMLElement | null = null
let scrollDelta = 0
let attempts = 0
const dx = right ? scroll_amount : -scroll_amount
const dx = scroll_amount
while (currentElement && attempts < 10) {
const computedStyle = window.getComputedStyle(currentElement)
@@ -420,7 +412,7 @@ export async function scrollHorizontally(
// Page-level scrolling (default or fallback)
const dx = right ? scroll_amount : -scroll_amount
const dx = scroll_amount
const bigEnough = (el: HTMLElement) => el.clientWidth >= window.innerWidth * 0.5
const canScroll = (el: HTMLElement | null) =>
el &&