import React from "react"; import { View, Text, ScrollView, Pressable, StyleSheet } from "react-native"; import { router } from "expo-router"; import { Ionicons } from "@expo/vector-icons"; import { ScaleSlider } from "@/components/ui/ScaleSlider"; import { Row, Grid } from "@/components/ui/LayoutHelpers"; import { Section, SectionHeader } from "@/components/ui/Sections"; import { Button } from "@/components/ui/Button"; import { Card } from "@/components/ui/Cards"; import { Theme } from "@/constants/theme"; import { MOOD_COMPONENTS, getMoodComponent, intensityLabel, } from "@/constants/mood-components"; import { useMoodEntryStore } from "@/stores/moodEntry"; export default function MoodComponentsScreen() { const { selectedMood, components, addComponent, removeComponent, setComponentIntensity, } = useMoodEntryStore(); const activeIds = components.map((c) => c.id); const available = MOOD_COMPONENTS.filter((d) => !activeIds.includes(d.id)); const handleDone = () => { router.back(); }; return ( {/* Header */} router.back()} hitSlop={8}> Adicionar estados Pronto {/* Subtitle */} {selectedMood && ( Além do humor principal, o que melhor descreve como estou me sentindo agora? )} {/* Active components */} {components.length > 0 && (
{components.map((comp) => { const def = getMoodComponent(comp.id); if (!def) return null; return ( {/* Card header */} {def.label} removeComponent(comp.id)} hitSlop={8} > {/* Slider */} setComponentIntensity(comp.id, v)} min={1} max={3} step={1} minLabel="Suave" maxLabel="Intensa" style={styles.slider} /> ); })}
)} {/* Available to add */} {available.length > 0 && (
{available.map((def) => ( addComponent(def.id)} style={styles.availableItemInternalWrapper} > {def.label} ))}
)}