Skip to content

bug: inconsistent time format (UI) #16

@leobrqz

Description

@leobrqz

Summary

Settings → Display → Time format → 24-hour does not apply across the app. Many screens still show AM/PM.

Cause

Clock times only respect the setting when rendered through formatTime / formatTimeRange in frontend/apps/web/lib/display.ts and the component passes timeFormat from usePreference("display.timeFormat", …).

Today that happens only in:

  • frontend/apps/web/app/calendar/page.tsx (Appointments table time column)
  • frontend/apps/web/components/AppointmentListDialog.tsx (appointment list rows)

All other time UI ignores display.timeFormat.

Defects

  1. StageHistoryDialog (frontend/apps/web/components/StageHistoryDialog.tsx): timestamps use Intl.DateTimeFormat("en-US", { … hour, minute }) without hour12. Default for that locale is 12-hour. display.locale is not used.

  2. Schedule-X (frontend/apps/web/app/calendar/page.tsx, frontend/apps/web/app/dashboard/CalendarStrip.tsx): month grid, agenda, and dashboard week strip render event times inside the library. That path does not use formatTime / formatTimeRange or display.timeFormat. CalendarStrip also does not use display.locale.

Requirements

  • Every user-visible clock time must follow display.timeFormat and display.locale (shared helpers in display.ts or equivalent, with explicit hour12).
  • Third-party calendars must be configured or customized so event times follow the same rules.
  • StageHistoryDialog must stop using a hardcoded en-US formatter without hour12.

Acceptance criteria

  • With 24-hour selected: no AM/PM in stage history, Schedule-X surfaces, dashboard week strip, or any other time label in the app.
  • With 12-hour selected: AM/PM where appropriate.
  • Changing locale in Settings does not leave hardcoded en-US formatters on dated/time strings meant to respect that setting.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions