"use client"; import React, { useEffect, useState } from "react"; import Link from "next/link"; import { BookOpen, Calendar, Eye, MessageSquare, ArrowLeft } from "lucide-react"; import { motion } from "motion/react"; import SafeImage from "./SafeImage"; import { useSettingsStore } from "../lib/store/settingsStore"; import api, { BASE_DOMAIN } from "../lib/services/api"; import { toPersian } from "../lib/utils"; export interface BlogPost { id: string; title: string; slug: string; content: string; imageUrl?: string; viewCount: number; createdAt: string; author?: { firstName: string; lastName: string; }; _count?: { comments: number; }; } export default function BlogPreviewSection() { const getText = useSettingsStore((state) => state.getText); const [blogs, setBlogs] = useState([]); const [isLoading, setIsLoading] = useState(true); useEffect(() => { async function loadBlogs() { try { setIsLoading(true); const res = await api.get("/blogs/homepage"); const list = Array.isArray(res.data?.blogs) ? res.data.blogs : Array.isArray(res.data) ? res.data : []; setBlogs(list); } catch (err) { console.error("Failed to load homepage blogs:", err); setBlogs([]); } finally { setIsLoading(false); } } loadBlogs(); }, []); if (!isLoading && blogs.length === 0) { return null; } return (
{/* Section Header */}
{getText("blog_preview_badge", "دانشنامه و مقالات علمی")}

{getText("blog_preview_title", "تازه‌ترین مقالات")} {getText("blog_preview_title_highlight", "دامپزشکی و سلامت")}

{getText("blog_preview_desc", "راهنماهای علمی و کاربردی برای نگهداری، تغذیه و پیشگیری از بیماری‌های سگ و گربه بر اساس آخرین تحقیقات بین‌المللی.")}

{getText("blog_preview_view_all", "مشاهده همه مقالات")}
{/* Blog Grid */} {isLoading ? (
{[1, 2, 3].map((i) => (
))}
) : (
{blogs.map((blog, idx) => { const image = blog.imageUrl?.startsWith("http") ? blog.imageUrl : blog.imageUrl ? `${BASE_DOMAIN}${blog.imageUrl}` : "/assets/images/blog-placeholder.png"; const authorName = blog.author ? `${blog.author.firstName || ""} ${blog.author.lastName || ""}`.trim() : "تحریریه کنینا"; const formattedDate = new Date(blog.createdAt).toLocaleDateString("fa-IR"); const blogHref = `/blog/${encodeURIComponent(blog.slug || blog.id)}`; return (
{toPersian(formattedDate)} {toPersian(blog.viewCount || 0)} {toPersian(blog._count?.comments || 0)}

{blog.title}

{authorName} {getText("blog_preview_read_article", "خواندن مقاله")}
); })}
)}
); }