'use client'; import { Promotion } from '@/types/promotion'; import { getPromotionTypeLabel } from '@/types/promotion'; import { PencilIcon, TrashIcon, EyeIcon, EyeSlashIcon } from '@heroicons/react/24/outline'; import { formatDate } from '@/lib/utils'; import Image from 'next/image'; import { useState } from 'react'; interface PromotionListProps { promotions: Promotion[]; onEdit: (promotion: Promotion) => void; onDelete: (promotion: Promotion) => void; onToggleActive: (promotion: Promotion) => void; isLoading: boolean; } export default function PromotionList({ promotions, onEdit, onDelete, onToggleActive, isLoading }: PromotionListProps) { const [imageErrors, setImageErrors] = useState>({}); if (isLoading) { return (
); } if (!promotions || promotions.length === 0) { return (

هیچ تبلیغاتی یافت نشد

); } // Sort promotions by priority (higher priority first) and then by creation date const sortedPromotions = [...promotions].sort((a, b) => { if (a.priority && b.priority) { return b.priority - a.priority; } if (a.priority) return -1; if (b.priority) return 1; return new Date(b.created_at).getTime() - new Date(a.created_at).getTime(); }); const handleImageError = (id: number) => { setImageErrors(prev => ({ ...prev, [id]: true })); }; return (

لیست تبلیغات

); }