Skip to content

feat(report): four tabs, one question each, and a swipe that follows the finger - #69

Closed
danielededo wants to merge 1 commit into
mainfrom
feat/sections
Closed

danielededo wants to merge 1 commit into
mainfrom
feat/sections

Conversation

@danielededo

@danielededo danielededo commented Oct 20, 2026 •

Copy link
Copy Markdown
Owner

Summary

The report had grown long. This PR reorganizes it into four tabs, each answering one question, and makes swiping between them smooth.

The month: how much did I get, and why?

  • What changed sits right under the net pay and the summary, no longer at the bottom.
  • The gross pay's items open from a row ("What your gross pay is made of") above the bar of where it goes. They are no longer a section of their own.
  • "Set aside for you", holidays and leave, and other information are rows that open at the bottom. The leave row shows the balances while closed. The first two link to the Accrued tab.

Over time: how is my pay going?

  • The trend chart with its table, overtime and bonuses, and the year by year totals.
  • The pension fund rows and "Net of every 100 € of gross" are gone from the table. The month already says the latter.

Accrued (new): what am I building up?

  • Holidays and leave charts, with a plain list when there are no charts.
  • The pension fund, with a small table per year of what was paid in and what counted as deductible (fundYears).
  • The TFR.
  • The tab shows only when there is something accrued over time.

Notes: the notes under the charts and tables are one line each.

Swipe

  • The tab follows the finger. It goes past a quarter of the screen or on a flick, and springs back otherwise. Past the first and last tab it resists.
  • It starts over charts, unless their amounts are shown: then the finger moves along the months.
  • It starts over rows that scroll sideways (months, tables) only once they can scroll no further that way.
  • touch-action: pan-y pinch-zoom on panels hands horizontal moves to the page, while vertical scrolling and zoom stay native.
  • A tap that ends a swipe no longer selects a chart column.
  • Before, a swipe was ignored over charts, tables and the months row, and those cover most of "Over time".

Type of change

  • New feature (non-breaking)

Checklist

  • Commits follow the commit convention
  • Tests added or updated for the change
  • All tests and linters pass locally
  • Documentation updated (README, docs/, comments) where behavior changed
  • CHANGELOG.md updated under Unreleased for user-visible changes

Notes for the reviewer

Tests

  • Go tests updated for four tabs, the year table without the share row, and the fund's yearly table.
  • The e2e swipe now sends touch moves as a finger does, and the keyboard step from "Over time" lands on "Accrued".

Manual checks

  • On an emulated iPhone, with real CDP touch events: swipes from the page body, from over a chart, short and slow, flicked, and past the first tab. Both in the downloaded report and inside the web app.

Local checks

  • gofmt, vet (including wasm), staticcheck, go test -race, piiscan, the web unit tests and the 13 e2e tests in Chromium all pass.

…the finger

The month answers how much you got and why: what changed sits right
under the net pay, the gross pay's items open from a row above where it
goes, and what is set aside, holidays and leave, and other information
are rows that open, the first two leading to the new Accrued tab.

Over time keeps the charts and the year by year totals, without the
pension fund rows and the net of every 100 € of gross, which the month
already says. Accrued gathers what builds up for you: holidays and leave,
the pension fund with what counted as deductible each year, and the TFR.
The notes under the charts are shorter.

A swipe between tabs now follows the finger, goes on a flick or past a
quarter of the screen and springs back otherwise. It starts over charts
unless their amounts are shown, and over a row that scrolls sideways
once that row can scroll no further; a tap that ends a swipe no longer
selects a column.
@danielededo
danielededo deleted the feat/sections branch October 21, 2026 16:30
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.

1 participant