diff --git a/components/BitRateSheet.tsx b/components/BitRateSheet.tsx deleted file mode 100644 index 0589cd059..000000000 --- a/components/BitRateSheet.tsx +++ /dev/null @@ -1,122 +0,0 @@ -import { useMemo, useState } from "react"; -import { useTranslation } from "react-i18next"; -import { Platform, TouchableOpacity, View } from "react-native"; -import { Text } from "./common/Text"; -import { FilterSheet } from "./filters/FilterSheet"; - -export type Bitrate = { - key: string; - value: number | undefined; -}; - -export const BITRATES: Bitrate[] = [ - { - key: "Max", - value: undefined, - }, - { - key: "8 Mb/s", - value: 8000000, - height: 1080, - }, - { - key: "4 Mb/s", - value: 4000000, - height: 1080, - }, - { - key: "2 Mb/s", - value: 2000000, - }, - { - key: "1 Mb/s", - value: 1000000, - }, - { - key: "500 Kb/s", - value: 500000, - }, - { - key: "250 Kb/s", - value: 250000, - }, -].sort( - (a, b) => - (b.value || Number.POSITIVE_INFINITY) - - (a.value || Number.POSITIVE_INFINITY), -); - -interface Props extends React.ComponentProps { - onChange: (value: Bitrate) => void; - selected?: Bitrate | null; - inverted?: boolean | null; -} - -export const BitrateSheet: React.FC = ({ - onChange, - selected, - inverted, - ...props -}) => { - const isTv = Platform.isTV; - const { t } = useTranslation(); - const [open, setOpen] = useState(false); - - const sorted = useMemo(() => { - if (inverted) - return BITRATES.slice().sort( - (a, b) => - (a.value || Number.POSITIVE_INFINITY) - - (b.value || Number.POSITIVE_INFINITY), - ); - return BITRATES.slice().sort( - (a, b) => - (b.value || Number.POSITIVE_INFINITY) - - (a.value || Number.POSITIVE_INFINITY), - ); - }, [inverted]); - - if (isTv) return null; - - return ( - - - - {t("item_card.quality")} - - setOpen(true)} - > - - {BITRATES.find((b) => b.value === selected?.value)?.key} - - - - - { - const label = (item as any).key || ""; - return label.toLowerCase().includes(query.toLowerCase()); - }} - renderItemLabel={(item) => {(item as any).key || ""}} - set={(vals) => { - const chosen = vals[0] as Bitrate | undefined; - if (chosen) onChange(chosen); - }} - /> - - ); -}; diff --git a/components/MediaSourceButton.tsx b/components/MediaSourceButton.tsx index 05847f352..afac24a09 100644 --- a/components/MediaSourceButton.tsx +++ b/components/MediaSourceButton.tsx @@ -6,8 +6,8 @@ import type { import { useCallback, useEffect, useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import { ActivityIndicator, TouchableOpacity, View } from "react-native"; +import { BITRATES } from "@/components/BitrateSelector"; import type { ThemeColors } from "@/hooks/useImageColorsReturn"; -import { BITRATES } from "./BitRateSheet"; import type { SelectedOptions } from "./ItemContent"; import { type OptionGroup, PlatformDropdown } from "./PlatformDropdown";