mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-06-02 20:18:29 +01:00
Merge origin/develop into refactor-chromecast
Bring 323 commits of develop (incl. the Expo SDK 56 / TV-branch work) into the chromecast refactor. Conflict resolutions: - chapters: take develop's reviewed version (ChapterList/ChapterTicks/ chapters.ts/test) — adds chapterNameAt, markers API, themed Colors. - auto-skip: keep chromecast's unified useSegmentSkipper for the phone player; restore develop's useCreditSkipper/useIntroSkipper (deleted on chromecast) so develop's Controls.tv.tsx compiles. TV->useSegmentSkipper migration left as follow-up. - en.json: union the two player blocks (kept chromecast casting keys + develop's subtitle/playback keys). - TechnicalInfoOverlay/PlatformDropdown: take develop's TV-safe versions (kept chromecast's disabled-prop branch, aliased to avoid shadowing the @expo/ui disabled modifier). - SDK 56 fixes: expo-router Router -> ImperativeRouter in cast components; ChapterTicks markers API in CastPlayerProgressBar. - restore utils/profiles/chromecast* (deleted on chromecast, still used by PlayButton). Typecheck passes; bun.lock regenerated against merged package.json.
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
|
||||
import { Ionicons } from "@expo/vector-icons";
|
||||
import type { BaseItemDto } from "@jellyfin/sdk/lib/generated-client";
|
||||
import type { Router } from "expo-router";
|
||||
import type { ImperativeRouter } from "expo-router";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { Pressable, View } from "react-native";
|
||||
import type { RemoteMediaClient } from "react-native-google-cast";
|
||||
@@ -33,7 +33,7 @@ interface CastPlayerEpisodeControlsProps {
|
||||
/** Load a different episode on the Chromecast. */
|
||||
loadEpisode: (episode: BaseItemDto) => Promise<void>;
|
||||
/** Expo Router instance for navigation on stop. */
|
||||
router: Router;
|
||||
router: ImperativeRouter;
|
||||
}
|
||||
|
||||
export function CastPlayerEpisodeControls({
|
||||
|
||||
@@ -13,6 +13,7 @@ import { CastTrickplayBubble } from "@/components/casting/player/CastTrickplayBu
|
||||
import { ChapterTicks } from "@/components/chapters/ChapterTicks";
|
||||
import type { useTrickplay } from "@/hooks/useTrickplay";
|
||||
import { calculateEndingTime, formatTime } from "@/utils/casting/helpers";
|
||||
import { chapterMarkers } from "@/utils/chapters";
|
||||
import { msToTicks, ticksToSeconds } from "@/utils/time";
|
||||
|
||||
type TrickplayReturn = ReturnType<typeof useTrickplay>;
|
||||
@@ -131,8 +132,7 @@ export function CastPlayerProgressBar({
|
||||
panHitSlop={{ top: 12, bottom: 12, left: 10, right: 10 }}
|
||||
/>
|
||||
<ChapterTicks
|
||||
chapters={chapters}
|
||||
durationMs={duration * 1000}
|
||||
markers={chapterMarkers(chapters, duration * 1000)}
|
||||
height={4}
|
||||
color='#cccccc'
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user