import { TouchableOpacity, StyleSheet, Text, SectionList, View, Alert, Switch, Pressable, } from "react-native"; import { useState } from "react"; import { router } from "expo-router"; import { Card } from "@/components/ui/Cards"; import ScreenLayout from "@/components/ui/ScreenLayout"; import { BorderRadius, Colors, Fonts, Spacing } from "@/constants/theme"; import { useThemeColor } from "@/hooks/use-theme-color"; import { useAuth } from "@/context/AuthContext"; import { Section, SectionHeader } from "@/components/ui/Sections"; import { Ionicons, MaterialIcons } from "@expo/vector-icons"; import { Button } from "@/components/ui/Button"; import { TimePicker } from "@/components/ui/TimePicker"; import { usePatchUserMe } from "@/hooks/useUserPreferences.queries"; export default function Settings() { const { user, logout, updateAuthUser } = useAuth(); const [allowWeeklyInsights, setAllowWeeklyInsights] = useState(false); const notificationsEnabled = user?.notificationsEnabled ?? true; const dailyReminderTime = user?.dailyReminderTime ?? "20:00"; const patchUserMe = usePatchUserMe((updatedUser) => { updateAuthUser(updatedUser); }); const handleNotificationToggle = (value: boolean) => { patchUserMe.mutate({ notificationsEnabled: value }); }; const handleTimeChange = (date: Date) => { const time = `${date.getHours().toString().padStart(2, "0")}:${date.getMinutes().toString().padStart(2, "0")}`; patchUserMe.mutate({ dailyReminderTime: time }); }; const textColor = useThemeColor({}, "text"); const handleLogout = async () => { Alert.alert("Sair", "Tem certeza que quer sair?", [ { text: "Cancelar", style: "cancel" }, { text: "Sair", style: "destructive", onPress: logout, }, ]); }; const handleProfilePress = () => { router.push("/profile"); }; const handleInvisibleMode = () => {}; const handleDataExport = () => { Alert.alert("Exportar dados", "Deseja exportar seus dados?", [ { text: "Cancelar", style: "cancel" }, { text: "Exportar", style: "destructive", onPress: () => { Alert.alert( "Exportar dados", "Você receberá um e-mail com os dados exportados.", [{ text: "OK", style: "default" }], ); }, }, ]); }; return (
Dados Pessoais Nome, Email e senha
Lembrete diário de humor {notificationsEnabled ? `Diário às ${dailyReminderTime}` : "Desativado"} {notificationsEnabled && ( { const [h, m] = dailyReminderTime.split(":").map(Number); const d = new Date(); d.setHours(h, m, 0, 0); return d; })()} onChange={handleTimeChange} /> )} Indicadores semanais Relatórios de progressos
Privacidade Exportar Meus Dados