import { useState, useEffect } from 'react'; import { Link, router, useLocalSearchParams } from 'expo-router'; import { View, Text, StyleSheet, ScrollView } from 'react-native'; import { SafeAreaView } from 'react-native-safe-area-context'; import { ThemedText } from '@/components/misc/themed-text'; import { ThemedView } from '@/components/misc/themed-view'; import { ScreenLayout } from '@/components/ui/ScreenLayout'; import { useAuth } from '@/context/AuthContext'; import { Grid, Col, Row, Between, Center } from '@/components/ui/LayoutHelpers'; import { Card } from '@/components/ui/Cards'; import { Button } from '@/components/ui/Button'; import { Input, TextArea } from '@/components/ui/Input'; import { Section, SectionHeader } from '@/components/ui/Sections'; import { Spacing, Typography, Colors } from '@/constants/theme'; import { ScaleSlider } from '@/components/ui/ScaleSlider'; import { MoodComponentCard } from '@/components/ui/MoodComponentCard'; import { Ionicons } from '@expo/vector-icons'; import { useThemeColor, useCreateMoodEntry } from '@/hooks'; import { useMoodEntryStore, } from '@/stores'; import { MOODS, getMood } from '@/constants/moods'; import { intensityToValue } from '@/constants/mood-components'; import { apiClient } from '@/lib/api'; export default function NewMoodEntry() { const { user } = useAuth(); const tintColor = useThemeColor({}, 'tint'); const { initialMood } = useLocalSearchParams(); const [annotation, setAnnotation] = useState(); const [stress, setStress] = useState(0); const [anxiety, setAnxiety] = useState(0); const [energy, setEnergy] = useState(0); const { selectedMood, setSelectedMood, components, reset } = useMoodEntryStore(); const createMoodEntry = useCreateMoodEntry(); useEffect(() => { setSelectedMood(getMood(initialMood)); }, [initialMood]); useEffect(() => { return () => reset(); }, []); const saveMoodEntry = async () => { const data = { selectedMood: selectedMood?.id.toUpperCase(), stressLevel: stress, energyLevel: energy, anxietyLevel: anxiety, moment: new Date(), annotation: annotation, moodComponents: components.map((c) => ({ component: c.id.toUpperCase(), intensity: intensityToValue(c.intensity) })) }; await createMoodEntry.mutateAsync(data) reset(); router.replace("/") } const editComponents = () => { router.push("/entry/mood-components") } return (
Como você está se sentindo agora? {selectedMood?.label || "Neutro"}
} minLabel="Baixa" maxLabel="Alta" /> } minLabel="Calmo" maxLabel="Ansioso" /> } minLabel="Relaxado" maxLabel="Estressado" />