Skip to content

A phone swipes between esports seasons #993

Description

@ExtraToast

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

  • 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

Blocked by

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentSized and specified for an agent to pick up

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions