You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The same gesture on both esports pages: the index, and an individual game's page.
Everything about how the drag feels was settled in the board ticket. This slice adds the one thing the board page did not need — where the neighbour's contents come from. A season's teams are read one season at a time, so the neighbouring season does not exist until it is asked for.
The finger going down is the signal. When a gesture starts, before it has moved far enough to commit, both neighbouring seasons are requested through the shared holder. The travel of the gesture itself hides most of a round trip, and a visitor who never swipes fetches nothing extra — which an idle prefetch of every neighbour would not honour. Answers are kept by season, so a visitor going back and forth does not re-request.
Where an answer has not arrived by the time the finger lifts, the band holds rather than jumping, exactly as the board ticket established.
A game's page must be able to swipe to a season the game was not fielded in, because its strip already offers one. And the game being read on the index survives the change, as it survives a tap.
Acceptance criteria
On a touch screen, dragging the esports index sideways moves between seasons with the same feel as the board page
The same on an individual game's page
The neighbouring seasons come from the season axis, which is what knows which season is older
Both neighbours are requested when a gesture starts, not before it and not on release
Nothing extra is requested for a visitor who never touches the screen
A season already read is not re-requested when swiped back to
Where an answer has not arrived when the finger lifts, the band holds the neighbour on screen rather than jumping
A game's page can be swiped to a season that game was not fielded in
The game being read on the index is still the one open after a season change
A season with nothing fielded in it arrives as that season's answer, rather than the band vanishing
The strip on both pages scrolls smoothly to the season arrived at by gesture
The url names the season arrived at, and the back button returns to the season come from
Two quick swipes land on the season asked for last
Under reduced motion the band still follows the finger, with the tails clamped
Hitting a node on either strip behaves exactly as it does today, and the five existing band swipe motion specs pass unmodified
Behaviour covered in the existing esports e2e specs, for both the index and a game's page
Choreography covered by a motion spec overriding its own context with a phone's viewport and touch
Verified by eye from the dev compose stack brought up from the working branch, capturing a drag on the index and on a game's page, with the screenshots in the pull request body
Parent
#987
What to build
The same gesture on both esports pages: the index, and an individual game's page.
Everything about how the drag feels was settled in the board ticket. This slice adds the one thing the board page did not need — where the neighbour's contents come from. A season's teams are read one season at a time, so the neighbouring season does not exist until it is asked for.
The finger going down is the signal. When a gesture starts, before it has moved far enough to commit, both neighbouring seasons are requested through the shared holder. The travel of the gesture itself hides most of a round trip, and a visitor who never swipes fetches nothing extra — which an idle prefetch of every neighbour would not honour. Answers are kept by season, so a visitor going back and forth does not re-request.
Where an answer has not arrived by the time the finger lifts, the band holds rather than jumping, exactly as the board ticket established.
A game's page must be able to swipe to a season the game was not fielded in, because its strip already offers one. And the game being read on the index survives the change, as it survives a tap.
Acceptance criteria
Blocked by