import { useEffect } from "react"; import { ActivityIndicator, Pressable, View } from "react-native"; import { Slider } from "react-native-awesome-slider"; import { useSharedValue } from "react-native-reanimated"; import { Link } from "expo-router"; import { Button } from "@/components/ui/Button"; import ChevronRight from "@/components/ui/ChevronRight"; import CustomSafeAreaView from "@/components/ui/CustomSafeAreaView"; import { Divider } from "@/components/ui/Divider"; import PageTitle from "@/components/ui/PageTitle"; import { Text } from "@/components/ui/Text"; import { useSession } from "@/lib/session"; import useAppSettings from "@/lib/settings"; import { api } from "@/lib/trpc"; export default function Dashboard() { const { logout } = useSession(); const { settings, setSettings, isLoading: isSettingsLoading, } = useAppSettings(); const imageQuality = useSharedValue(0); const imageQualityMin = useSharedValue(0); const imageQualityMax = useSharedValue(100); useEffect(() => { imageQuality.value = settings.imageQuality * 100; }, [settings]); const { data, error, isLoading } = api.users.whoami.useQuery(); if (error?.data?.code === "UNAUTHORIZED") { logout(); } return ( {isSettingsLoading ? "Loading ..." : settings.address} {isLoading ? "Loading ..." : data?.email} App Settings Theme { { light: "Light", dark: "Dark", system: "System" }[ settings.theme ] } Default Bookmark View {isSettingsLoading ? ( ) : ( {settings.defaultBookmarkView === "reader" ? "Reader" : "Browser"} )} Upload Settings Image Quality {Math.round(settings.imageQuality * 100)}% setSettings({ ...settings, imageQuality: Math.round(value) / 100, }) } progress={imageQuality} minimumValue={imageQualityMin} maximumValue={imageQualityMax} /> ); }