/** * Chapter tick marks drawn as an absolute overlay over a progress slider. * Renders nothing for media with one or zero chapters. `pointerEvents: "none"` * so the slider underneath still receives touches. */ import type { ChapterInfo } from "@jellyfin/sdk/lib/generated-client/models"; import { View } from "react-native"; import { chapterMarkers } from "@/utils/chapters"; interface ChapterTicksProps { chapters: ChapterInfo[] | null | undefined; /** Total media duration in milliseconds. */ durationMs: number; /** Tick colour. */ color?: string; } export function ChapterTicks({ chapters, durationMs, color = "#fff", }: ChapterTicksProps) { const markers = chapterMarkers(chapters, durationMs); // One chapter (typically a single marker at 0) is not worth marking. if (markers.length <= 1) return null; return ( {markers.map((marker) => ( ))} ); }