import { Ionicons } from "@expo/vector-icons"; import { useMemo } from "react"; import { useTranslation } from "react-i18next"; import { Platform, View, type ViewProps } from "react-native"; import { Switch } from "react-native-gesture-handler"; import { useSettings } from "@/utils/atoms/settings"; import { Text } from "../common/Text"; import { ListGroup } from "../list/ListGroup"; import { ListItem } from "../list/ListItem"; import { PlatformDropdown } from "../PlatformDropdown"; import { useMedia } from "./MediaContext"; interface Props extends ViewProps {} export const AudioToggles: React.FC = ({ ...props }) => { const isTv = Platform.isTV; const media = useMedia(); const { pluginSettings } = useSettings(); const { settings, updateSettings } = media; const cultures = media.cultures; const { t } = useTranslation(); const optionGroups = useMemo(() => { const options = [ { type: "radio" as const, label: t("home.settings.audio.none"), value: "none", selected: !settings?.defaultAudioLanguage, onPress: () => updateSettings({ defaultAudioLanguage: null }), }, ...(cultures?.map((culture) => ({ type: "radio" as const, label: culture.DisplayName || culture.ThreeLetterISOLanguageName || "Unknown", value: culture.ThreeLetterISOLanguageName || culture.DisplayName || "unknown", selected: culture.ThreeLetterISOLanguageName === settings?.defaultAudioLanguage?.ThreeLetterISOLanguageName, onPress: () => updateSettings({ defaultAudioLanguage: culture }), })) || []), ]; return [ { options, }, ]; }, [cultures, settings?.defaultAudioLanguage, t, updateSettings]); if (isTv) return null; if (!settings) return null; return ( {t("home.settings.audio.audio_hint")} } > updateSettings({ rememberAudioSelections: value }) } /> {settings?.defaultAudioLanguage?.DisplayName || t("home.settings.audio.none")} } title={t("home.settings.audio.language")} /> ); };