import { View, Text, StyleSheet, KeyboardAvoidingView, ScrollView, } from "react-native"; import { useState } from "react"; import { router, useLocalSearchParams } from "expo-router"; import { Card } from "@/components/ui/Cards"; import { TextArea } from "@/components/ui/Input"; import { Button } from "@/components/ui/Button"; import { Section, SectionHeader } from "@/components/ui/Sections"; import { Spacing, Typography, Colors, BorderRadius } from "@/constants/theme"; import { Ionicons, MaterialIcons } from "@expo/vector-icons"; import { useCreateTrigger, useMoodEntries, useLinkMoodToTrigger } from "@/hooks"; import { CategoryChips, CategoryOption } from "@/components/ui/CategoryChips"; import { TriggerCategory } from "@/constants/triggers"; import { TRIGGER_CATEGORY_DEFINITIONS } from "@/constants/trigger-categories"; import { TimePicker } from "@/components/ui/TimePicker"; import { getMood } from "@/constants/moods"; import { LinkRow } from "@/components/ui/LinkRow"; const TRIGGER_CATEGORIES: CategoryOption[] = TRIGGER_CATEGORY_DEFINITIONS.map((d) => ({ label: d.label, value: d.id, icon: , })); export default function NewTrigger() { const [moment, setMoment] = useState(new Date()); const [comment, setComment] = useState(""); const { category: initialCategory, moodId: linkedMoodId } = useLocalSearchParams<{ category?: string; moodId?: string }>(); const [category, setCategory] = useState(initialCategory ?? "WORK"); const createTrigger = useCreateTrigger(); const linkMoodToTrigger = useLinkMoodToTrigger(); const [linkMood, setLinkMood] = useState(false); const { data: moodEntries, isLoading: isLoadingMood } = useMoodEntries({ limit: 1, }); const latestMood = moodEntries?.entries[0] ?? null; const moodDef = latestMood ? getMood(latestMood.selectedMood.toLowerCase()) : null; const save = async () => { const data = { moment, comment, category, ...(linkMood && latestMood ? { moodId: latestMood.id } : null), }; const result = await createTrigger.mutateAsync(data); if (linkedMoodId) { await linkMoodToTrigger.mutateAsync({ triggerId: String(result.trigger.id), moodId: linkedMoodId, perceivedImpact: 3, }); router.back(); } else { router.replace("/(tabs)/actions"); } }; return ( Aconteceu algo? Registre acontecimentos fora do padrão Identificar gatilhos ajuda a entender melhor seus padrões emocionais