import { View, Text, StyleSheet, Platform, Pressable, ActivityIndicator } from "react-native"; import { Ionicons } from "@expo/vector-icons"; import Animated, { FadeInDown, FadeIn, useSharedValue, useAnimatedStyle, withSpring } from "react-native-reanimated"; import { GradientBackground } from "../../src/components/ui"; import { colors, spacing, radius, typography, animations } from "../../src/theme"; import { useFeatureInterest } from "../../src/hooks/useFeatureInterest"; const ACCENT_COLOR = colors.premium.rose; const AnimatedPressable = Animated.createAnimatedComponent(Pressable); export default function QuizScreen() { const { isInterested, isLoading, isToggling, toggleInterest, isAuthenticated } = useFeatureInterest("quiz"); const scale = useSharedValue(1); const animatedButtonStyle = useAnimatedStyle(() => ({ transform: [{ scale: scale.value }], })); const handlePressIn = () => { scale.value = withSpring(0.96, animations.spring); }; const handlePressOut = () => { scale.value = withSpring(1, animations.spring); }; return ( {/* Title section */} CONNECTION Quiz {/* Decorative separator */} {/* Coming soon badge */} ARRIVING SOON {/* Description */} Discover the depths of your connection through carefully crafted questions that reveal how well you truly know each other. {/* Feature hints */} Learn what makes each other tick Deepen your bond Track your journey {/* Bottom teaser */} Something special is being crafted for you {/* Interest button - always reserve space to prevent layout shift */} {isAuthenticated && !isLoading && ( {isToggling ? ( ) : ( <> {isInterested ? "You're on the list!" : "I'm interested"} )} )} ); } const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center', paddingHorizontal: spacing.lg, paddingTop: 60, paddingBottom: Platform.OS === 'ios' ? 120 : 100, }, content: { width: '100%', alignItems: 'center', paddingHorizontal: spacing.md, }, label: { ...typography.caption1, fontWeight: '600', letterSpacing: 3, color: ACCENT_COLOR, textAlign: 'center', marginBottom: spacing.xs, }, title: { ...typography.largeTitle, color: colors.text, textAlign: 'center', }, separator: { flexDirection: 'row', alignItems: 'center', justifyContent: 'center', marginVertical: spacing.lg, width: 140, }, separatorLine: { flex: 1, height: 1, backgroundColor: 'rgba(232, 164, 174, 0.3)', }, separatorDiamond: { width: 6, height: 6, backgroundColor: ACCENT_COLOR, transform: [{ rotate: '45deg' }], marginHorizontal: spacing.md, opacity: 0.6, }, badge: { backgroundColor: colors.backgroundLight, paddingHorizontal: spacing.lg, paddingVertical: spacing.sm, borderRadius: radius.full, borderWidth: 1, borderColor: colors.border, marginBottom: spacing.xl, }, interestButton: { flexDirection: 'row', alignItems: 'center', justifyContent: 'center', backgroundColor: colors.backgroundLight, paddingHorizontal: spacing.lg, paddingVertical: spacing.sm + 2, borderRadius: radius.full, borderWidth: 1, borderColor: colors.border, gap: spacing.sm, }, interestButtonActive: { backgroundColor: colors.background, borderColor: colors.primary, }, interestButtonText: { ...typography.subhead, fontWeight: '600', color: ACCENT_COLOR, }, badgeText: { ...typography.caption2, fontWeight: '600', letterSpacing: 2, color: ACCENT_COLOR, }, description: { ...typography.body, color: colors.textSecondary, textAlign: 'center', marginBottom: spacing.xl, paddingHorizontal: spacing.md, }, features: { marginBottom: spacing.xl, }, featureItem: { flexDirection: 'row', alignItems: 'center', justifyContent: 'center', marginBottom: spacing.sm, }, featureText: { ...typography.subhead, color: colors.text, marginLeft: spacing.sm, }, teaser: { ...typography.footnote, fontStyle: 'italic', color: colors.textTertiary, textAlign: 'center', }, interestButtonContainer: { marginTop: spacing.xl, minHeight: 44, }, });