Skip to content

[LOW] UI polish batch: "1 players" / "1 expenses" pluralization, recovery prompt offering an empty draft, stale "Action needed" badge after acknowledgement #1237

Description

@njrini99-code

Small user-visible defects collected during the 2026-08-02 in-browser test matrix. Grouped because each is a one-line fix.

1. Pluralization — "1 players", "1 expenses"

  • Announcements list: an announcement targeted at one player renders "1 players" on the card. The compose dialog gets it right ("1 player selected") — only the card is wrong.
  • Travel expenses panel: a trip with one expense renders "1 expenses" under Total Expenses.

Both need the same conditional-plural treatment already used elsewhere in the codebase (e.g. ${n} round${n === 1 ? '' : 's'} in golf.ts).

2. New Round offers to restore a draft with zero holes

Starting a fresh round pops the recovery modal:

Recover Unsaved Progress?
Found locally saved data with 0 completed holes. This data may have been saved when the app was interrupted.
[Discard] [Restore]

Offering to restore nothing is pure friction on an otherwise clean start, and it trains players to dismiss a dialog that matters when it has real data in it. Suppress the prompt when the recovered draft has 0 completed holes (just discard silently), or at minimum don't offer "Restore" for an empty draft.

3. "Action needed" badge persists on an acknowledged announcement

After a player acknowledges an ack-required announcement, the card correctly flips its counter to 1/1 ack and the filter chips for Unread and Action needed disappear — but the "Action needed" badge on the card itself remains. The card simultaneously reads "Action needed" and "1/1 ack".

Badge should clear once the viewing player's own acknowledgement is recorded.

4. Approach miss grid: two buttons both render the letter "L"

In the approach miss-direction 3×3 grid, ↑ L (Long) and ← L (Left) both display "L"; only the arrow glyph distinguishes them. The aria-labels are correct ("Long", "Left"), so this is visual only — but at a glance in the field the two are easy to confuse. Consider Lg/Lft, or dropping the letter and relying on the arrow plus position.


All four verified in-browser on Demo University Golf as coach and as Cole Bennett.

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

    bugIncorrect behavior or regressiondesign-systemgolfGolfHelmplan-meTrigger CodeRabbit automatic issue planningproduct:golfhelmGolfHelm product area

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions