import { Stack, useRouter } from 'expo-router'; import * as Haptics from 'expo-haptics'; import { Text, Pressable, View, StyleSheet } from 'react-native'; import DraggableFlatList, { ScaleDecorator } from 'react-native-draggable-flatlist'; import { GestureHandlerRootView } from 'react-native-gesture-handler'; import { LinearGradient } from 'expo-linear-gradient'; import { Icon } from '@/components/Icon'; import { MoodCard } from '@/components/MoodCard'; import { SequenceCard } from '@/components/SequenceCard'; import { useStore } from '@/store/store'; import { getThemeColors } from '@/utils/theme'; import { useResponsive } from '@/hooks/useResponsive'; import type { Mood } from '@/store/store'; export default function Home() { const router = useRouter(); const moods = useStore((state) => state.moods); const sequences = useStore((state) => state.sequences); const settings = useStore((state) => state.settings); const reorderMoods = useStore((state) => state.reorderMoods); const updateSettings = useStore((state) => state.updateSettings); const theme = getThemeColors(); const responsive = useResponsive(); const handleHaptic = () => { if (settings.hapticFeedback) { Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light); } }; const toggleScreen = () => { handleHaptic(); updateSettings({ screenEnabled: !settings.screenEnabled }); }; const toggleFlashlight = () => { handleHaptic(); updateSettings({ flashlightEnabled: !settings.flashlightEnabled }); }; const handleMoodPress = (id: string) => { handleHaptic(); router.push(`/mood/${id}`); }; const handleSequencePress = (id: string) => { handleHaptic(); router.push(`/sequence/${id}`); }; const renderHeader = () => ( <> Moods { handleHaptic(); router.push('/create-mood'); }} className="p-2" > { handleHaptic(); router.push('/sequences'); }} className="p-2" > { handleHaptic(); router.push('/settings'); }} className="p-2" > {/* Sequenzen Liste */} {sequences.length > 0 && ( <> {sequences.map((sequence) => ( handleSequencePress(sequence.id)} /> ))} )} ); return ( reorderMoods(data)} keyExtractor={(item) => item.id} contentContainerStyle={{ paddingBottom: 100, paddingTop: 64 }} ListHeaderComponent={renderHeader} renderItem={({ item, drag, isActive }) => ( handleMoodPress(item.id)} onLongPress={drag} isActive={isActive} /> )} /> {/* Gradient am unteren Rand */} {/* Toggle Buttons am unteren Rand */} Bildschirm Taschenlampe ); } const styles = StyleSheet.create({});