// components/library/LibraryContentCard.tsx import React from 'react'; import { View, TouchableOpacity, StyleSheet } from 'react-native'; import { Feather } from '@expo/vector-icons'; import { useColorScheme } from '@/hooks/useColorScheme'; import { LibraryContent } from '@/types/exercise'; import { spacing } from '@/styles/sharedStyles'; import { ThemedText } from '@/components/ThemedText'; export interface LibraryContentCardProps { content: LibraryContent; onPress: () => void; onFavoritePress: () => void; isVerified?: boolean; } export default function LibraryContentCard({ content, onPress, onFavoritePress, isVerified }: LibraryContentCardProps) { const { colors } = useColorScheme(); return ( {content.title} {isVerified && ( POW Verified )} {content.description && ( {content.description} )} {content.tags.map(tag => ( {tag} ))} ); } const styles = StyleSheet.create({ container: { borderRadius: 12, padding: spacing.medium, marginBottom: spacing.small, }, header: { flexDirection: 'row', justifyContent: 'space-between', alignItems: 'flex-start', marginBottom: spacing.small, }, titleContainer: { flex: 1, flexDirection: 'row', alignItems: 'center', gap: spacing.small, }, favoriteButton: { padding: spacing.small, marginRight: -spacing.small, marginTop: -spacing.small, }, description: { marginBottom: spacing.small, }, footer: { flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center', }, tags: { flexDirection: 'row', flexWrap: 'wrap', gap: spacing.small, }, tag: { paddingHorizontal: spacing.small, paddingVertical: 4, borderRadius: 12, }, tagText: { fontSize: 12, fontWeight: '500', }, verifiedBadge: { flexDirection: 'row', alignItems: 'center', gap: 4, }, verifiedText: { fontSize: 12, fontWeight: '500', }, });