diff --git a/components/PlayButton.tsx b/components/PlayButton.tsx index 2a539736..810724d2 100644 --- a/components/PlayButton.tsx +++ b/components/PlayButton.tsx @@ -2,13 +2,18 @@ import { usePlayback } from "@/providers/PlaybackProvider"; import { runtimeTicksToMinutes } from "@/utils/time"; import { useActionSheet } from "@expo/react-native-action-sheet"; import { Feather, Ionicons } from "@expo/vector-icons"; -import { BaseItemDto } from "@jellyfin/sdk/lib/generated-client/models"; +import { + BaseItemDto, + PlaybackInfoResponse, +} from "@jellyfin/sdk/lib/generated-client/models"; import { View } from "react-native"; import CastContext, { PlayServicesState, useRemoteMediaClient, } from "react-native-google-cast"; import { Button } from "./Button"; +import { Text } from "./common/Text"; +import { useMemo } from "react"; interface Props extends React.ComponentProps { item?: BaseItemDto | null; @@ -68,18 +73,44 @@ export const PlayButton: React.FC = ({ item, url, ...props }) => { ); }; + const playbackPercent = useMemo(() => { + if (!item || !item.RunTimeTicks) return 0; + const userData = item.UserData; + if (!userData) return 0; + const PlaybackPositionTicks = userData.PlaybackPositionTicks; + if (!PlaybackPositionTicks) return 0; + return (PlaybackPositionTicks / item.RunTimeTicks) * 100; + }, [item]); + return ( - + + + ); };