/** * Casting Player Transport Controls * Playback transport row: rewind, play/pause, forward. */ import { Ionicons } from "@expo/vector-icons"; import { Pressable, View } from "react-native"; import { Text } from "@/components/common/Text"; interface CastPlayerTransportControlsProps { /** Whether playback is currently playing. */ isPlaying: boolean; /** Toggle play/pause on the Chromecast. */ togglePlayPause: () => Promise; /** Skip backward by the given number of seconds. */ skipBackward: (seconds: number) => Promise; /** Skip forward by the given number of seconds. */ skipForward: (seconds: number) => Promise; /** Configured rewind skip time in seconds, shown on the rewind button. */ rewindSkipTime: number | null | undefined; /** Configured forward skip time in seconds, shown on the forward button. */ forwardSkipTime: number | null | undefined; /** Accent color used for the play/pause button background. */ protocolColor: string; } export function CastPlayerTransportControls({ isPlaying, togglePlayPause, skipBackward, skipForward, rewindSkipTime, forwardSkipTime, protocolColor, }: CastPlayerTransportControlsProps) { return ( {/* Rewind (use settings) */} skipBackward(rewindSkipTime ?? 10)} style={{ position: "relative", justifyContent: "center", alignItems: "center", }} > {rewindSkipTime != null && ( {rewindSkipTime} )} {/* Play/Pause */} {/* Forward (use settings) */} skipForward(forwardSkipTime ?? 10)} style={{ position: "relative", justifyContent: "center", alignItems: "center", }} > {forwardSkipTime != null && ( {forwardSkipTime} )} ); }