import React from 'react';
import { View, StyleSheet, ViewStyle } from 'react-native';
import Animated, { FadeInUp } from 'react-native-reanimated';
import { COLORS, SPACING, BORDER_RADIUS, SHADOWS } from '../../constants/theme';
interface CardProps {
children: React.ReactNode;
style?: ViewStyle | ViewStyle[];
variant?: 'elevated' | 'flat' | 'outline';
animated?: boolean;
delay?: number;
}
export function Card({ children, style, variant = 'elevated', animated = false, delay = 0 }: CardProps) {
const getVariantStyles = () => {
switch (variant) {
case 'flat':
return styles.flat;
case 'outline':
return styles.outline;
default:
return styles.elevated;
}
};
const content = (
{children}
);
if (animated) {
return (
{content}
);
}
return content;
}
const styles = StyleSheet.create({
card: {
padding: SPACING.lg,
borderRadius: BORDER_RADIUS.xl,
backgroundColor: COLORS.surface,
},
elevated: {
...(SHADOWS.medium as any),
},
flat: {
backgroundColor: COLORS.surfaceLight,
},
outline: {
backgroundColor: 'transparent',
borderWidth: 1,
borderColor: COLORS.divider,
},
});