import { StyleSheet, Text, TextStyle, View } from "react-native"; import { Ionicons } from "@expo/vector-icons"; import Animated, { FadeIn, FadeInUp } from "react-native-reanimated"; import { DecorativeSeparator, GlassButton, GradientBackground } from "../../../components/ui"; import { colors, radius, spacing, typography } from "../../../theme"; export interface FeatureItem { icon: keyof typeof Ionicons.glyphMap; text: string; color?: string; } interface SwipeInfoStateLayoutProps { accentColor: string; icon: keyof typeof Ionicons.glyphMap; label: string; title: string; badgeText?: string; description: string; features: FeatureItem[]; teaser: string; separatorVariant?: "rose" | "gold"; labelStyle?: TextStyle; action?: { label: string; onPress: () => void; variant?: "primary" | "secondary"; }; } export const SwipeInfoStateLayout = ({ accentColor, icon, label, title, badgeText, description, features, teaser, separatorVariant = "rose", labelStyle, action, }: SwipeInfoStateLayoutProps) => ( {label} {title} {badgeText && ( {badgeText} )} {description} {features.map((feature, index) => ( {feature.text} ))} {teaser} {action && ( {action.label} )} ); const styles = StyleSheet.create({ centerContainer: { flex: 1, justifyContent: "center", alignItems: "center", }, waitingContent: { width: '100%', alignItems: 'center', paddingHorizontal: spacing.md, }, waitingIconContainer: { width: 72, height: 72, borderRadius: 36, backgroundColor: 'rgba(232, 164, 174, 0.1)', borderWidth: 1, borderColor: 'rgba(232, 164, 174, 0.2)', justifyContent: 'center', alignItems: 'center', marginBottom: spacing.xl, }, waitingLabel: { ...typography.caption1, fontWeight: '600', letterSpacing: 3, color: colors.premium.rose, textAlign: 'center', marginBottom: spacing.xs, }, waitingTitle: { ...typography.largeTitle, color: colors.text, textAlign: 'center', }, waitingBadge: { backgroundColor: 'rgba(232, 164, 174, 0.1)', paddingHorizontal: spacing.lg, paddingVertical: spacing.sm, borderRadius: radius.full, borderWidth: 1, borderColor: 'rgba(232, 164, 174, 0.2)', marginBottom: spacing.xl, }, waitingBadgeText: { ...typography.caption2, fontWeight: '600', letterSpacing: 2, color: colors.premium.rose, }, waitingDescription: { ...typography.body, color: colors.textSecondary, textAlign: 'center', marginBottom: spacing.xl, paddingHorizontal: spacing.md, }, waitingFeatures: { marginBottom: spacing.xl, }, waitingFeatureItem: { flexDirection: 'row', alignItems: 'center', justifyContent: 'center', marginBottom: spacing.sm, }, waitingFeatureText: { ...typography.subhead, color: colors.text, marginLeft: spacing.sm, }, waitingTeaser: { ...typography.footnote, fontStyle: 'italic', color: colors.textTertiary, textAlign: 'center', }, });