Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion app/timer/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,7 @@ export default function TimerPage() {
e.preventDefault();
// On a break the one thing Space can mean is ending it. Pausing a
// break is a control nobody reaches for and it reads as stopping. The
// next block then waits for another Space to start it.
// next block starts running.
if (onBreak) endBreak();
else if (liveActive.isPaused) resume();
else pause();
Expand Down
13 changes: 6 additions & 7 deletions lib/timer-context.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -703,10 +703,9 @@ function toBreakState(state: TimerState, atMs: number, breakSeconds: number, fro
}

/**
* End the break and set out the next block, at the same length as the last,
* held at zero. It starts when the reader starts it, not when the break
* ends: a block that began ticking the moment rest stopped was counting the
* walk back to the desk as work.
* End the break and start the next block, at the same length as the last,
* running from zero. Pressing End break is the reader saying they are back,
* so the clock does not wait for a second press.
*/
function toFocusState(state: TimerState, atMs: number): TimerState {
return {
Expand All @@ -716,8 +715,8 @@ function toFocusState(state: TimerState, atMs: number): TimerState {
startedAt: atMs,
stretchStartedAt: atMs,
accumulatedMs: 0,
isPaused: true,
pausedAt: atMs,
isPaused: false,
pausedAt: null,
lastSeenAt: atMs,
lastInputAt: atMs,
};
Expand Down Expand Up @@ -1257,7 +1256,7 @@ export function TimerProvider({ children }: { children: React.ReactNode }) {
[applyActive],
);

/** End the break, set out the next block held at the same length as the last. */
/** End the break and start the next block at the same length as the last. */
const endBreak = useCallback(() => {
const running = activeRef.current;
if (!running || running.phase !== 'break') return;
Expand Down
13 changes: 5 additions & 8 deletions readmedesign.md
Original file line number Diff line number Diff line change
Expand Up @@ -1644,13 +1644,10 @@ digits in mono, the words in the serif) and a smaller muted figure beside the
dock's digits. Before the first break the two would be the same number
twice, so it is not drawn.

Nothing starts on its own after a break either. **End break** (one tap, or
the space bar, or `P`) closes the rest and sets out the next block at the
same length, held at zero: the clock reads `路 ready` instead of `路 paused`
and the solid button says **Start**. The block begins when that is pressed,
and its stretch in the chain starts there, not when the break ended. A block
that ran the moment rest stopped was counting the walk back to the desk as
work.
**End break** (one tap, or the space bar, or `P`) closes the rest and starts
the next block at once, at the same length, running from zero. Pressing it
is the reader saying they are back, so the clock does not ask for a second
press. The block's stretch in the chain starts there.

### The pause
A pause and a break stay two things. Pause is "I have stepped away, count
Expand Down Expand Up @@ -2329,7 +2326,7 @@ back to their book. The timer's own keys (Space, F) only exist on the
timer screen, which is the one screen a reader mid-chapter is least likely to
be looking at, so stopping meant finding the dock with a mouse. `P` and `K`
reach the clock from wherever they are: `P` holds it or lets it go, and means
**end break** while a break runs (the next block then waits for another `P`); `K` finishes the sitting and the log sheet
**end break** while a break runs (the next block starts running); `K` finishes the sitting and the log sheet
opens on the spot, because `PageShell` already carries one on every tab. On
the few screens that carry neither sheet nor shell, `K` opens the timer
instead, so the key never ends a sitting with nothing to show for it.
Expand Down
Loading