Feat: Etiqueta Destacado en Admin - Avisos
This commit is contained in:
@@ -72,6 +72,7 @@ public class AdminController : ControllerBase
|
||||
BrandName = a.Brand != null ? a.Brand.Name : null,
|
||||
VersionName = a.VersionName,
|
||||
StatusID = a.StatusID,
|
||||
IsFeatured = a.IsFeatured,
|
||||
|
||||
CreatedAt = a.CreatedAt,
|
||||
PublishedAt = a.PublishedAt,
|
||||
@@ -121,6 +122,7 @@ public class AdminController : ControllerBase
|
||||
UserID = a.UserID,
|
||||
UserName = a.User.UserName,
|
||||
Email = a.User.Email,
|
||||
IsFeatured = a.IsFeatured,
|
||||
Thumbnail = a.Photos.Where(p => p.IsCover).Select(p => p.FilePath).FirstOrDefault() ?? a.Photos.Select(p => p.FilePath).FirstOrDefault()
|
||||
})
|
||||
.ToListAsync();
|
||||
|
||||
@@ -561,8 +561,8 @@ export default function FormularioAviso({ plan, onCancel, onSuccess, editId }: P
|
||||
<div className="sm:hidden w-16 h-px bg-gradient-to-r from-transparent via-[#009EE3]/50 to-transparent my-1"></div>
|
||||
|
||||
{/* Contenedor del Logo con Fondo Sólido */}
|
||||
<div className="relative h-12 md:h-16 px-4 flex items-center justify-center rounded-xl overflow-hidden bg-white/5">
|
||||
<MercadoPagoLogo className="relative z-10 h-10 md:h-16 w-auto drop-shadow-lg" />
|
||||
<div className="relative h-12 md:h-16 px-4 flex items-center justify-center rounded-xl overflow-hidden bg-white/20">
|
||||
<MercadoPagoLogo className="relative z-10 h-14 md:h-16 w-auto drop-shadow-lg" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -311,7 +311,14 @@ export default function AdminPage() {
|
||||
<div className="flex items-center gap-4">
|
||||
<img src={getImageUrl(ad.thumbnail)} className="w-20 h-14 object-cover rounded-xl border border-white/10" alt="" />
|
||||
<div>
|
||||
<span className="text-sm font-black text-white uppercase tracking-tight block mb-1">{ad.title}</span>
|
||||
<div className="flex items-center gap-2 mb-1">
|
||||
<span className="text-sm font-black text-white uppercase tracking-tight">{ad.brandName} {ad.versionName}</span>
|
||||
{ad.isFeatured && (
|
||||
<span className="px-1.5 py-0.5 rounded-md bg-amber-500/20 text-amber-500 text-[8px] font-black uppercase tracking-tighter border border-amber-500/20 flex items-center gap-1">
|
||||
<span className="text-[10px]">★</span> DESTACADO
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
<span className="text-xs text-gray-500 font-medium">ID: #{ad.adID} • {parseUTCDate(ad.createdAt).toLocaleDateString()}</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -367,7 +374,14 @@ export default function AdminPage() {
|
||||
<div className="flex gap-4">
|
||||
<img src={getImageUrl(ad.thumbnail)} className="w-24 h-16 object-cover rounded-xl border border-white/10" alt="" />
|
||||
<div className="flex-1 min-w-0">
|
||||
<span className="text-sm font-black text-white uppercase tracking-tight block truncate mb-1">{ad.title}</span>
|
||||
<div className="flex flex-wrap items-center gap-2 mb-1">
|
||||
<span className="text-sm font-black text-white uppercase tracking-tight truncate max-w-[150px]">{ad.brandName} {ad.versionName}</span>
|
||||
{ad.isFeatured && (
|
||||
<span className="px-1 py-0.5 rounded text-[7px] font-black uppercase tracking-tighter bg-amber-500/20 text-amber-500 border border-amber-500/20">
|
||||
★ DESTACADO
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
<span className={`inline-block px-2 py-0.5 rounded text-[8px] font-black uppercase tracking-tighter border ${statusConfig.bg} ${statusConfig.color} ${statusConfig.border}`}>
|
||||
{statusConfig.label}
|
||||
</span>
|
||||
@@ -455,7 +469,14 @@ export default function AdminPage() {
|
||||
<div key={ad.adID} className="glass p-6 rounded-3xl border border-white/5 flex flex-col md:flex-row gap-8 items-center group hover:border-blue-500/30 transition-all">
|
||||
<img src={ad.thumbnail?.startsWith('http') ? ad.thumbnail : `${import.meta.env.VITE_STATIC_BASE_URL}${ad.thumbnail}`} className="w-40 h-24 object-cover rounded-2xl shadow-xl" alt="" />
|
||||
<div className="flex-1">
|
||||
<div className="flex items-center gap-3 mb-1">
|
||||
<h3 className="text-xl font-bold uppercase tracking-tight">{ad.versionName}</h3>
|
||||
{ad.isFeatured && (
|
||||
<span className="px-2 py-1 rounded-md bg-amber-500/20 text-amber-500 text-[10px] font-black uppercase tracking-tighter border border-amber-500/20">
|
||||
★ DESTACADO
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
<p className="text-sm text-gray-500 font-medium">Publicado por {ad.userName} ({ad.email}) • {parseUTCDate(ad.createdAt).toLocaleDateString('es-AR', { timeZone: 'America/Argentina/Buenos_Aires', hour12: false })}</p>
|
||||
|
||||
<p className="text-blue-400 font-black mt-1 text-lg">{ad.currency} {ad.price.toLocaleString()}</p>
|
||||
|
||||
Reference in New Issue
Block a user