Commit graph

3 commits

Author SHA1 Message Date
David 0bc20f81d8 F9: Small polish batch
- getYouTubeId also recognizes /embed/<id> and /shorts/<id> URLs (test
  renders all three variants as thumbnails on the exercise detail view)
- useListNavigation JSDoc: itemCount is a Ref<number>, not a number
- collectionRepository.getAll: N+1 per-collection count queries folded
  into one LEFT JOIN ... GROUP BY

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 15:45:39 +02:00
David 166cf87e95 F8: Date formatting uses Intl per app language
formatDate special-cased only French, so Danish users saw US
mm/dd/yyyy; formatDateTime mixed a manual French format with
toLocaleString() (OS-locale dependent) for everyone else. Both now use
Intl.DateTimeFormat with a fixed app-language -> BCP-47 map (en-US,
fr-FR, da-DK — same mapping as useSpeech), 2-digit day/month so output
stays deterministic per language: en 03/15/2026, fr 15/03/2026,
da 15.03.2026. Adds a Danish format test.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 15:41:51 +02:00
David 352a3d5e88 Initial commit
Some checks are pending
CI / Lint & Format (push) Waiting to run
CI / Build (push) Waiting to run
CI / Tests (${{ matrix.browser }}) (chromium) (push) Waiting to run
CI / Tests (${{ matrix.browser }}) (firefox) (push) Waiting to run
2026-06-18 13:06:57 +02:00