Skip to content

fix(timeline): prevent mobile horizontal overflow - #971

Merged
ErikBjare merged 1 commit into
ActivityWatch:masterfrom
TimeToBuildBob:fix/mobile-overflow-regression
Sep 6, 2026
Merged

fix(timeline): prevent mobile horizontal overflow#971
ErikBjare merged 1 commit into
ActivityWatch:masterfrom
TimeToBuildBob:fix/mobile-overflow-regression

Conversation

@TimeToBuildBob

Copy link
Copy Markdown
Contributor

Summary

  • let the Timeline time-range grid shrink inside a phone viewport
  • stack its labels and wrap quick-range buttons below Bootstrap's small breakpoint
  • add a 360px end-to-end assertion against horizontal document overflow

Reproduction

At a 360px viewport on current master, document.documentElement.scrollWidth is 450px. The InputTimeInterval grid is 433px wide because its 1fr track and unwrapped button groups preserve their intrinsic width.

After this change, document width remains 360px and the grid is 326px wide.

Verification

  • ./node_modules/.bin/jest --selectProjects jsdom --runInBand test/unit/VisTimeline.test.js (8 passed)
  • ./node_modules/.bin/vue-cli-service lint src/components/InputTimeInterval.vue test/e2e/screenshot.test.js
  • PRE_COMMIT_ALLOW_NO_CONFIG=1 prek run --files src/components/InputTimeInterval.vue test/e2e/screenshot.test.js
  • headless Chromium probe at 360×800: page width 450px before, 360px after

Related: ActivityWatch/activitywatch#1430

@TimeToBuildBob
TimeToBuildBob force-pushed the fix/mobile-overflow-regression branch from 6c48f5a to 6d05535 Compare September 6, 2026 08:49
@greptile-apps

greptile-apps Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR prevents the Timeline interval controls from widening mobile pages and adds an end-to-end regression check.

  • Makes the grid’s control column shrink below its intrinsic width.
  • Stacks labels and controls and wraps quick-range buttons below Bootstrap’s small breakpoint.
  • Verifies at a 360×800 viewport that document width does not exceed viewport width.

Confidence Score: 5/5

The PR appears safe to merge, with no outstanding correctness or repository-rule violations.

The responsive CSS directly addresses the intrinsic-width overflow and the mobile end-to-end test exercises the Timeline route at the reported viewport. The previous workflow comment-target issue is fixed by targeting ActivityWatch/aw-webui, and the previous ScreenTime merge-key issue is fixed by selecting merge keys according to the mobile source type.

Important Files Changed

Filename Overview
src/components/InputTimeInterval.vue Adds responsive grid sizing and mobile wrapping to prevent the Timeline range controls from causing horizontal overflow.
test/e2e/screenshot.test.js Adds a mobile Timeline assertion that the document does not horizontally overflow.

Reviews (2): Last reviewed commit: "fix(timeline): prevent mobile horizontal..." | Re-trigger Greptile

Comment thread .github/workflows/comment.yml Outdated
Comment thread src/queries.ts Outdated
@codecov

codecov Bot commented Sep 6, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 51.99%. Comparing base (a2ca625) to head (6d05535).

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #971   +/-   ##
=======================================
  Coverage   51.99%   51.99%           
=======================================
  Files          48       48           
  Lines        2927     2927           
  Branches      652      685   +33     
=======================================
  Hits         1522     1522           
  Misses       1385     1385           
  Partials       20       20           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@TimeToBuildBob

TimeToBuildBob commented Sep 6, 2026

Copy link
Copy Markdown
Contributor Author

Greptile reviewed the pre-rebase fork ancestry rather than this PR diff. Current base→head changes only InputTimeInterval.vue and screenshot.test.js; the flagged workflow/query files are not in the PR. The rebased head is 6d05535, CI is green, and the responsive changes were assessed as sound. Re-review requested for the rebased head.

@TimeToBuildBob

Copy link
Copy Markdown
Contributor Author

@greptileai review

@ErikBjare
ErikBjare merged commit ec68d20 into ActivityWatch:master Sep 6, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants