AI Implementation feature(907): Challenges Page and Challenge Solve Modal 1.03 (#49)
This commit was merged in pull request #49.
This commit is contained in:
@@ -3,7 +3,7 @@ type: guide
|
||||
title: Challenges Board
|
||||
description: How a signed-in player navigates the `/challenges` page, opens a challenge modal, submits a flag, and watches live solve updates.
|
||||
tags: [guide, challenges, board, flag, score, sse, tester]
|
||||
timestamp: 2026-07-23T00:10:00Z
|
||||
timestamp: 2026-07-23T03:09:00Z
|
||||
---
|
||||
|
||||
# When this view is available
|
||||
@@ -66,7 +66,7 @@ renders `[data-testid="challenges-gate"]`:
|
||||
|
||||
| Event state | Headline | Countdown text (`[data-testid="challenges-countdown"]`) | Helper label |
|
||||
|---------------|---------------------------|--------------------------------------------------------|-----------------------------------------------------|
|
||||
| `countdown` | `Event starts in` | `DD:HH:mm` until `eventStartUtc` | `The board will be available once the event is running.` |
|
||||
| `countdown` | `Event starts in` | `DD:HH:mm:ss` until `eventStartUtc` (ticks each second during the final minute so the player sees time elapse) | `The board will be available once the event is running.` |
|
||||
| `running` | _(grid shown instead)_ | — | — |
|
||||
| `stopped` | `Event ended` | `Event ended` | `The board is closed.` |
|
||||
| `unconfigured`| `Awaiting configuration` | empty | _(none)_ |
|
||||
@@ -159,7 +159,9 @@ destruction of the page the SSE source is closed via
|
||||
## Countdown / stopped gate
|
||||
|
||||
1. Set `eventStartUtc` in the future; confirm the gate panel shows
|
||||
`Event starts in` and the `DD:HH:mm` countdown.
|
||||
`Event starts in` and the `DD:HH:mm:ss` countdown. Within the final
|
||||
minute the seconds digit visibly ticks down (e.g. `00:00:00:24` →
|
||||
`00:00:00:23` → …) so the player can see time elapse.
|
||||
2. Wait for the countdown to hit zero; the SPA reloads and now shows
|
||||
the board.
|
||||
3. Set `eventEndUtc` in the past; confirm the gate shows
|
||||
|
||||
@@ -3,7 +3,7 @@ type: guide
|
||||
title: Event Window
|
||||
description: How the event window state machine is computed and surfaced via REST + SSE.
|
||||
tags: [guide, event, countdown, sse, state-machine]
|
||||
timestamp: 2026-07-23T01:19:00Z
|
||||
timestamp: 2026-07-23T03:09:00Z
|
||||
---
|
||||
|
||||
# Configuration
|
||||
@@ -73,7 +73,10 @@ The store:
|
||||
3. Exposes `countdownText` (computed): `""` for `unconfigured`,
|
||||
`"Event ended"` for `stopped`, and `formatDdHhMm(seconds)` for
|
||||
`countdown` / `running`. The format helper lives in the pure module
|
||||
`event-status.pure.ts` (`DD:HH:mm`, zero-padded).
|
||||
`event-status.pure.ts` (`DD:HH:mm:ss`, zero-padded). The seconds
|
||||
digit is driven by the local 1-second tick (and the SSE re-push
|
||||
every 60 seconds) so the final minute of the countdown visibly
|
||||
elapses second-by-second on the shell header.
|
||||
|
||||
The header (`ShellHeaderComponent`) renders an LED with the
|
||||
`led-{state}` class so the colour reflects the current state (the
|
||||
|
||||
Reference in New Issue
Block a user