/** * TimeOfDayTester Component * Development helper to test all time-of-day themes * Usage: Import and render in any screen during development */ import React, { useState } from 'react'; import { View, StyleSheet, ScrollView, TouchableOpacity } from 'react-native'; import Text from '../atoms/Text'; import TimeOfDayBackground from '../atoms/TimeOfDayBackground'; import { getTimeOfDayTheme } from '../../src/constants/timeOfDayThemes'; import { TimeOfDay } from '../../src/utils/timeOfDay'; export default function TimeOfDayTester() { const [selectedTime, setSelectedTime] = useState('morning'); const theme = getTimeOfDayTheme(selectedTime); const times: TimeOfDay[] = ['morning', 'day', 'evening', 'night']; return ( {/* Background Preview */} {theme.title} {theme.subtitle} {theme.emoji} {/* Time Selector */} Teste verschiedene Tageszeiten: {times.map((time) => ( setSelectedTime(time)} > {time === 'morning' && '🌅 Morgen'} {time === 'day' && '☁️ Tag'} {time === 'evening' && '🌆 Abend'} {time === 'night' && '🌙 Nacht'} ))} {/* Theme Info */} Particle Type: {theme.particleType} Particle Count: {theme.particleCount} Gradient: {theme.gradientColors.join(', ')} ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#000000', }, preview: { flex: 2, width: '100%', }, previewContent: { flex: 1, justifyContent: 'center', alignItems: 'center', paddingHorizontal: 24, }, previewTitle: { fontSize: 32, fontWeight: 'bold', textAlign: 'center', marginBottom: 16, textShadowColor: 'rgba(0, 0, 0, 0.5)', textShadowOffset: { width: 0, height: 2 }, textShadowRadius: 4, }, previewSubtitle: { fontSize: 18, textAlign: 'center', marginBottom: 24, textShadowColor: 'rgba(0, 0, 0, 0.3)', textShadowOffset: { width: 0, height: 1 }, textShadowRadius: 2, }, previewEmoji: { fontSize: 60, }, selector: { flex: 1, backgroundColor: '#1A1A1A', paddingTop: 20, paddingHorizontal: 16, borderTopLeftRadius: 24, borderTopRightRadius: 24, }, selectorTitle: { fontSize: 16, fontWeight: '600', marginBottom: 16, textAlign: 'center', }, buttons: { flexDirection: 'row', flexWrap: 'wrap', justifyContent: 'center', gap: 8, marginBottom: 20, }, button: { paddingVertical: 12, paddingHorizontal: 20, borderRadius: 20, backgroundColor: '#333333', }, buttonActive: { backgroundColor: '#FFD700', }, buttonText: { fontSize: 14, fontWeight: '600', }, info: { flex: 1, }, infoText: { fontSize: 12, marginBottom: 8, fontFamily: 'monospace', }, });