"use client"; import React, { useState, useMemo } from "react"; import { motion, AnimatePresence } from "motion/react"; import { ChevronRight, ChevronLeft, Calendar, User, ArrowLeft, Sparkles, BookOpen, Mail, Check, Clock, Tag, Search, Pin, Eye, Filter, } from "lucide-react"; import { toast } from "sonner"; import { Product } from "../lib/data/products"; import { productService } from "../lib/services/productService"; import { useRouter } from 'next/navigation'; import Image from 'next/image'; export interface BlogCategory { id: string; name: string; slug: string; } export interface BlogPostItem { id: string; slug: string; title: string; excerpt: string; image: string; imageAlt?: string; date: string; author: string; content: string; category?: string; categoryId?: string; tags?: { id: string; name: string }[]; readingTime?: number; featured?: boolean; viewCount?: number; } export default function BlogPage({ blogs = [], categories = [], }: { blogs: BlogPostItem[]; categories?: BlogCategory[]; }) { const router = useRouter(); const [products, setProducts] = useState([]); const [selectedCategory, setSelectedCategory] = useState("ALL"); const [searchQuery, setSearchQuery] = useState(""); const [selectedTag, setSelectedTag] = useState(null); React.useEffect(() => { productService.getProducts({ limit: 8 }).then((res) => setProducts(res.data)); }, []); // Filtered blogs list const filteredBlogs = useMemo(() => { return blogs.filter((b) => { const matchCategory = selectedCategory === "ALL" || b.categoryId === selectedCategory || b.category === selectedCategory; const matchSearch = !searchQuery.trim() || b.title.toLowerCase().includes(searchQuery.toLowerCase()) || b.excerpt.toLowerCase().includes(searchQuery.toLowerCase()); const matchTag = !selectedTag || (b.tags && b.tags.some((t) => t.name === selectedTag)); return matchCategory && matchSearch && matchTag; }); }, [blogs, selectedCategory, searchQuery, selectedTag]); // Featured post (prioritize featured flag, otherwise the first item) const featuredPost = useMemo(() => { if (filteredBlogs.length === 0) return null; const explicitlyFeatured = filteredBlogs.find((b) => b.featured); return explicitlyFeatured || filteredBlogs[0]; }, [filteredBlogs]); // Regular posts excluding featured if displayed prominently const regularPosts = useMemo(() => { if (!featuredPost) return filteredBlogs; return filteredBlogs.filter((b) => b.id !== featuredPost.id); }, [filteredBlogs, featuredPost]); // Extract all unique tags const allTags = useMemo(() => { const map = new Map(); blogs.forEach((b) => { b.tags?.forEach((t) => { map.set(t.name, t.name); }); }); return Array.from(map.values()); }, [blogs]); return (
{/* Breadcrumb Navigation */}
router.push('/')}> خانه مجله سلامت و مقالات
{/* Page Header */}
دانشنامه علمی و درمانی کنینا آلمان

مجله تخصصی سلامت و تغذیه سگ و گربه

جدیدترین یافته‌های بالینی، مقالات تخصصی دامپزشکی و پروتکل‌های پیشگیری و درمان بر پایه استانداردهای علمی کنینا آلمان.

{/* Search & Category Filter Section */}
{/* Search Input */}
setSearchQuery(e.target.value)} className="w-full pl-4 pr-11 py-3 rounded-2xl bg-medical-gray-50 border border-medical-gray-200 focus:border-canina-blue focus:bg-white text-xs sm:text-sm font-bold outline-none transition-all" /> {searchQuery && ( )}
{selectedTag && (
تگ انتخاب شده: #{selectedTag}
)}
{/* Category Filter Pills */}
{categories.map((c) => ( ))}
{/* Quick Tag Cloud */} {allTags.length > 0 && (
محبوب‌ترین تگ‌ها: {allTags.slice(0, 10).map((tag) => ( ))}
)}
{/* Featured Post Banner */} {featuredPost && (
router.push(`/blog/${featuredPost.slug}`)} >
{featuredPost.imageAlt {featuredPost.featured && (
مقاله ویژه و برگزیده
)}
{featuredPost.category || "پژوهش بالینی"}
{featuredPost.date}
{featuredPost.readingTime || 4} دقیقه مطالعه

{featuredPost.title}

{featuredPost.excerpt}

{featuredPost.author}
تیم پژوهش کنینا
مطالعه مقاله کامل
)} {/* Regular Posts Grid */} {regularPosts.length > 0 ? (
{regularPosts.map((post, idx) => ( router.push(`/blog/${post.slug}`)} >
{post.imageAlt {post.category && ( {post.category} )}
{post.date}
{post.readingTime || 3} دقیقه

{post.title}

{post.excerpt}

{post.author}
مطالعه
))}
) : (

هیچ مقاله‌ای با معیارهای جستجوی شما یافت نشد.

)} {/* Newsletter Section */}
C
خبرنامه علمی و تخصصی کنینا آلمان

مشترک دانشنامه پزشکی شوید

تازه‌ترین یافته‌های علمی تغذیه و سلامت حیوانات خانگی را ماهانه در صندوق ایمیل خود دریافت نمایید.

{ e.preventDefault(); toast.success("عضویت شما در خبرنامه علمی با موفقیت ثبت شد!"); }} className="w-full bg-white/15 backdrop-blur-xl border border-white/25 p-2 rounded-2xl sm:rounded-full flex flex-col sm:flex-row items-stretch sm:items-center gap-2 sm:gap-3 shadow-2xl hover:border-canina-gold/40 transition-all group" dir="ltr" >
); }