import React, { ReactNode } from 'react'
import { useTranslation } from 'react-i18next'
import { StyleSheet, Text, View } from 'react-native'
import AppAnalytics from 'src/analytics/AppAnalytics'
import { PointsEvents } from 'src/analytics/Events'
import Touchable from 'src/components/Touchable'
import CheckCircle from 'src/icons/CheckCircle'
import ComingSoon from 'src/icons/ComingSoon'
import LogoHeart from 'src/images/LogoHeart'
import { PointsActivity } from 'src/points/types'
import Colors from 'src/styles/colors'
import { typeScale } from 'src/styles/fonts'
import { Spacing } from 'src/styles/styles'
export interface Props extends PointsActivity {
title: string
icon: ReactNode
onPress?: () => void
}
export default function ActivityCard({
activityId,
pointsAmount,
previousPointsAmount,
completed = false,
title,
icon,
onPress,
}: Props) {
const handleOnPress = () => {
AppAnalytics.track(PointsEvents.points_screen_card_press, { activityId })
onPress?.()
}
return (
<>
{completed ? : icon}
{title}
{previousPointsAmount}
{pointsAmount}
>
)
}
export function MoreComingCard() {
const { t } = useTranslation()
return (
{t('points.activityCards.moreComing.title')}
)
}
const styles = StyleSheet.create({
cardTitle: {
flex: 1,
...typeScale.labelSmall,
},
card: {
backgroundColor: Colors.backgroundSecondary,
flexDirection: 'row',
alignItems: 'center',
padding: Spacing.Regular16,
gap: Spacing.Smallest8,
borderRadius: Spacing.Smallest8,
},
faded: {
opacity: 0.5,
},
pointsAmountContainer: {
marginLeft: 'auto',
flexDirection: 'row',
borderRadius: 100,
borderWidth: 1,
borderColor: Colors.borderPrimary,
paddingHorizontal: Spacing.Smallest8,
paddingVertical: Spacing.Tiny4,
gap: Spacing.Tiny4,
},
pointsAmount: {
...typeScale.labelXSmall,
},
previousPointsAmount: {
...typeScale.labelXSmall,
color: Colors.contentSecondary,
textDecorationLine: 'line-through',
},
})