Files
streamyfin/translations
Gauvain 98b90f5bdb feat(player): wire chapter UI into native player controls
Threads chapters + duration through Controls -> BottomControls so the
ChapterTicks overlay, ChapterList modal and current-chapter label have
the data they need.

BottomControls

- Memoizes chapterMarkerList (markers within the media duration) once
  per (chapters, durationMs) change and feeds it to ChapterTicks.
- hasChapters gates the bookmark icon + list modal; nothing renders
  when chapters are missing or below two real markers.
- Current chapter name shown as a small label below the title/year
  during playback; the same helper feeds the trickplay bubble while
  scrubbing. Both labels disappear gracefully when chapters are absent.

useVideoSlider

- Adds seekTo(value): a programmatic seek for non-gesture entry points
  (chapter list, hot-keys). Reads isPlaying directly instead of
  wasPlayingRef — which is only populated inside handleSliderStart, so
  a tap-to-seek on the chapter list previously either stranded paused
  playback or auto-resumed against a manual pause.

TrickplayBubble

- Adds an optional chapterName prop; renders a small left-aligned
  overlay inside the preview frame (Jellyfin web style) showing chapter
  name above the timestamp. Hides the chapter line entirely when null.
- zIndex + elevation so the bubble lands in front of the title /
  surrounding overlays.
- Slight reposition (bottom -20, paddingTop 12) brings the bubble
  closer to the slider.

translations/en.json

- chapters.title / chapters.chapter_number / chapters.open /
  chapters.close keys for the list modal and the bookmark a11y label.
2026-05-27 16:39:50 +02:00
..
2026-01-11 17:39:23 +01:00
2026-01-11 17:39:23 +01:00
2026-01-11 17:39:23 +01:00
2026-01-11 17:39:23 +01:00
2026-02-19 07:45:11 +01:00
2026-01-11 17:39:23 +01:00
2026-02-19 07:45:11 +01:00
2026-01-11 17:39:23 +01:00
2026-02-19 07:45:11 +01:00
2026-01-11 17:39:23 +01:00
2026-01-11 17:39:23 +01:00
2026-02-19 07:45:11 +01:00
2026-01-11 17:39:23 +01:00
2026-01-11 17:39:23 +01:00
2026-02-19 07:45:11 +01:00
2026-01-11 17:39:23 +01:00
2026-01-11 17:39:23 +01:00
2026-01-11 17:39:23 +01:00
2026-01-11 17:39:23 +01:00
2026-01-11 17:39:23 +01:00
2026-01-11 17:39:23 +01:00
2026-02-19 07:45:11 +01:00
2026-01-11 17:39:23 +01:00
2026-01-11 17:39:23 +01:00
2026-01-11 17:39:23 +01:00