import { TouchableOpacity, View, ViewProps } from "react-native"; import * as DropdownMenu from "@/components/DropdownMenu"; import { Text } from "../common/Text"; import { useMedia } from "./MediaContext"; import { Switch } from "react-native-gesture-handler"; import { ListGroup } from "../list/ListGroup"; import { ListItem } from "../list/ListItem"; import { Ionicons } from "@expo/vector-icons"; import { SubtitlePlaybackMode } from "@jellyfin/sdk/lib/generated-client"; interface Props extends ViewProps {} export const SubtitleToggles: React.FC = ({ ...props }) => { const media = useMedia(); const { settings, updateSettings } = media; const cultures = media.cultures; if (!settings) return null; const subtitleModes = [ SubtitlePlaybackMode.Default, SubtitlePlaybackMode.Smart, SubtitlePlaybackMode.OnlyForced, SubtitlePlaybackMode.Always, SubtitlePlaybackMode.None, ]; return ( Configure subtitle preferences. } > {settings?.defaultSubtitleLanguage?.DisplayName || "None"} Languages { updateSettings({ defaultSubtitleLanguage: null, }); }} > None {cultures?.map((l) => ( { updateSettings({ defaultSubtitleLanguage: l, }); }} > {l.DisplayName} ))} {settings?.subtitleMode || "Loading"} Subtitle Mode {subtitleModes?.map((l) => ( { updateSettings({ subtitleMode: l, }); }} > {l} ))} updateSettings({ rememberSubtitleSelections: value }) } /> updateSettings({ subtitleSize: Math.max(0, settings.subtitleSize - 5), }) } className="w-8 h-8 bg-neutral-800 rounded-l-lg flex items-center justify-center" > - {settings.subtitleSize} updateSettings({ subtitleSize: Math.min(120, settings.subtitleSize + 5), }) } > + ); };