'use client'; import { formatCurrency, formatTimeRemaining } from '@/lib/utils'; import { Task, TaskType } from '@/types'; import Link from 'next/link'; interface TaskCardProps { task: Task; } export function TaskCard({ task }: TaskCardProps) { const taskTypeLabels: Record = { [TaskType.TEXT_VERIFICATION]: 'Text', [TaskType.IMAGE_LABELING]: 'Image', [TaskType.SURVEY]: 'Survey', [TaskType.CONTENT_MODERATION]: 'Moderation', }; return (
{/* Header */}

{task.title}

{task.paymentAmount >= 5 && ( HIGH )}
{/* Description */}

{task.description}

{/* Stats Grid */}
Payment
{formatCurrency(task.paymentAmount)}
Available
{task.spotsRemaining}/{task.maxSubmissions}
{/* Footer */}
{taskTypeLabels[task.taskType]} {formatTimeRemaining(task.expiresAt)}
); }