import { useQueryClient } from "@tanstack/react-query"; import { useNavigation } from "expo-router"; import { useEffect, useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import { Linking, ScrollView, Switch, TextInput, TouchableOpacity, View, } from "react-native"; import { useSafeAreaInsets } from "react-native-safe-area-context"; import { toast } from "sonner-native"; import { Text } from "@/components/common/Text"; import { ListGroup } from "@/components/list/ListGroup"; import { ListItem } from "@/components/list/ListItem"; import DisabledSetting from "@/components/settings/DisabledSetting"; import { useSettings } from "@/utils/atoms/settings"; export default function page() { const navigation = useNavigation(); const { t } = useTranslation(); const insets = useSafeAreaInsets(); const { settings, updateSettings, pluginSettings } = useSettings(); const queryClient = useQueryClient(); const [value, setValue] = useState(settings?.marlinServerUrl || ""); const onSave = (val: string) => { updateSettings({ marlinServerUrl: !val.endsWith("/") ? val : val.slice(0, -1), }); toast.success(t("home.settings.plugins.marlin_search.toasts.saved")); }; const handleOpenLink = () => { Linking.openURL("https://github.com/fredrikburmester/marlin-search"); }; const disabled = useMemo(() => { return ( pluginSettings?.searchEngine?.locked === true && pluginSettings?.marlinServerUrl?.locked === true ); }, [pluginSettings]); useEffect(() => { if (!pluginSettings?.marlinServerUrl?.locked) { navigation.setOptions({ headerRight: () => ( onSave(value)} className='px-2'> {t("home.settings.plugins.marlin_search.save_button")} ), }); } }, [navigation, value, pluginSettings?.marlinServerUrl?.locked, t]); if (!settings) return null; return ( { updateSettings({ searchEngine: "Jellyfin" }); queryClient.invalidateQueries({ queryKey: ["search"] }); }} > { updateSettings({ searchEngine: value ? "Marlin" : "Jellyfin", }); queryClient.invalidateQueries({ queryKey: ["search"] }); }} /> {t("home.settings.plugins.marlin_search.url")} setValue(text)} /> {t("home.settings.plugins.marlin_search.marlin_search_hint")}{" "} {t("home.settings.plugins.marlin_search.read_more_about_marlin")} ); }