"use client"; import { useState, useEffect } from "react"; import { Product, IngredientInfo } from "../lib/data/products"; import { motion } from "motion/react"; import { FlaskConical, CheckCircle2, ChevronRight, ChevronLeft, Beaker, Search } from "lucide-react"; import { useSettingsStore } from "../lib/store/settingsStore"; import { productService } from "../lib/services/productService"; import Link from "next/link"; import { SCIENTIFIC_TERMS } from "../lib/data/scientificTerms"; import { useRouter, useSearchParams } from 'next/navigation'; export default function IngredientWiki() { const router = useRouter(); const searchParams = useSearchParams(); const termParam = searchParams.get('term'); const texts = useSettingsStore(state => state.texts); const scientificTerms = useSettingsStore(state => state.scientificTerms); const [ingredientsWiki, setIngredientsWiki] = useState([]); const [products, setProducts] = useState([]); const [searchQuery, setSearchQuery] = useState(""); useEffect(() => { productService.getProducts({ limit: 999 }).then(res => setProducts(res.data)); }, []); useEffect(() => { let list: IngredientInfo[] = []; const raw = texts.ingredients_wiki || texts.ingredients_wiki_text; if (raw) { try { const parsed = typeof raw === 'string' ? JSON.parse(raw) : raw; if (Array.isArray(parsed)) { list = parsed.map((item: any) => ({ id: item.id, name: item.name, description: item.description, benefits: Array.isArray(item.benefits) ? item.benefits : [] })); } } catch (e) { console.error("Failed to parse ingredients_wiki:", e); } } // Merge terms from scientificTerms and static SCIENTIFIC_TERMS dictionary const mergedTerms = { ...SCIENTIFIC_TERMS, ...scientificTerms }; Object.entries(mergedTerms).forEach(([key, t]: [string, any]) => { const wikiId = t.wikiId || t.key || key; if (!list.some(item => item.id === wikiId || item.name.includes(t.term))) { list.push({ id: wikiId, name: t.term, description: t.definition, benefits: [] }); } }); setIngredientsWiki(list); }, [texts, scientificTerms]); useEffect(() => { if (termParam && ingredientsWiki.length > 0) { const el = document.getElementById(`wiki-${termParam}`); if (el) { setTimeout(() => { el.scrollIntoView({ behavior: 'smooth', block: 'center' }); }, 100); } } }, [termParam, ingredientsWiki]); return (
{/* Mobile Navigation & Breadcrumbs */}
router.push('/')}>کانینا دانشنامه علمی
{/* Desktop Breadcrumbs */}
router.push('/')}>خانه دانشنامه مواد نایاب و ارگانیک
علم در خدمت کیفیت

دانشنامه مواد نایاب و ارگانیک کانینا

ما از مواد اولیه‌ای استفاده می‌کنیم که در سطح دارویی فرآوری شده‌اند. در اینجا با قدرت بیولوژیک این ترکیبات آشنا شوید.

setSearchQuery(e.target.value)} className="w-full bg-medical-gray-50 border border-medical-gray-200 rounded-full py-3 pr-11 pl-4 text-sm focus:outline-none focus:ring-2 focus:ring-canina-blue/20" />
{(() => { const filtered = ingredientsWiki.filter(ing => { if (!searchQuery.trim()) return true; const q = searchQuery.trim().toLowerCase(); return ing.name.toLowerCase().includes(q) || ing.description.toLowerCase().includes(q); }); if (filtered.length === 0) { return (

ماده‌ای یافت نشد

با عبارت جستجو شده ماده مؤثره‌ای مطابقت ندارد.

); } return (
{filtered.map((ing, idx) => { const hasIngredient = products.filter(p => { const ingNameClean = ing.name.split('(')[0].trim().toLowerCase(); const ingIdClean = ing.id.replace(/-/g, ' ').toLowerCase(); return p.main_ingredients?.some(mi => { const miClean = mi.toLowerCase(); return miClean.includes(ingNameClean) || ingNameClean.includes(miClean) || miClean.includes(ingIdClean) || (ing.id === 'green-mussel' && (miClean.includes('صدف') || miClean.includes('mussel'))) || (ing.id === 'collagen' && miClean.includes('کلاژن')) || (ing.id === 'silver' && (miClean.includes('نقره') || miClean.includes('silver'))) || (ing.id === 'peat-extract' && (miClean.includes('پیت') || miClean.includes('moor') || miClean.includes('عصاره'))) || (ing.id === 'colostrum' && (miClean.includes('آغوز') || miClean.includes('colostrum'))) || (ing.id === 'biotin' && (miClean.includes('بیوتین') || miClean.includes('biotin'))) || (ing.id === 'taurin' && (miClean.includes('تورین') || miClean.includes('taurine'))) || (ing.id === 'salmon-oil' && (miClean.includes('سالمون') || miClean.includes('salmon') || miClean.includes('ماهی'))) || (ing.id === 'black-cumin' && (miClean.includes('سیاه دانه') || miClean.includes('زیره') || miClean.includes('cumin'))) || (ing.id === 'eggshell' && (miClean.includes('پوسته تخم مرغ') || miClean.includes('تخم‌مرغ') || miClean.includes('eggshell'))) || (ing.id === 'hawthorn' && (miClean.includes('زالزالک') || miClean.includes('hawthorn'))) || (ing.id === 'l-carnitine' && (miClean.includes('کارنیتین') || miClean.includes('carnitine'))) || (ing.id === 'seaweed' && (miClean.includes('جلبک') || miClean.includes('seaweed'))) || (ing.id === 'hyaluronic' && (miClean.includes('هیالورونات') || miClean.includes('hyaluron'))) || (ing.id === 'calendula-sea-buckthorn' && (miClean.includes('کالاندولا') || miClean.includes('سنجد') || miClean.includes('خولان') || miClean.includes('calendula'))) || (ing.id === 'colloidal-silver' && miClean.includes('کلوئیدی')) || (ing.id === 'retinol-palmitate' && (miClean.includes('رتینول') || miClean.includes('پالمیتات'))) || (ing.id === 'grapefruit-seed' && miClean.includes('گریپ')) || (ing.id === 'vaseline' && miClean.includes('وازلین')) || (ing.id === 'panthenol' && miClean.includes('پانتنول')) || (ing.id === 'diatomaceous' && miClean.includes('دیاتومه')) || (ing.id === 'artichoke' && miClean.includes('کنگر')) || (ing.id === 'brewers-yeast' && (miClean.includes('مخمر') || miClean.includes('yeast'))) || (ing.id === 'willow-bark' && miClean.includes('بید')) || (ing.id === 'ginger' && miClean.includes('زنجبیل')) || (ing.id === 'bovine-serum' && miClean.includes('سرم')) || (ing.id === 'bovine-blood' && miClean.includes('خون')) || (ing.id === 'beef-fat' && miClean.includes('چربی')) || (ing.id === 'argan-oil' && miClean.includes('آرگان')) || (ing.id === 'rosehip-oil' && miClean.includes('گل رز')) || (ing.id === 'walnut-oil' && miClean.includes('گردو')) || (ing.id === 'polyglyceryl-caprate' && (miClean.includes('پلی گلیسریل') || miClean.includes('کاپرات'))) || (ing.id === 'carbomer' && miClean.includes('کربومر')) || (ing.id === 'dodecanoic' && (miClean.includes('دودکانوئیک') || miClean.includes('مارگوسا') || miClean.includes('insect'))); }); }); const isTargeted = termParam === ing.id; return (
{/* Content */}

{ing.name}

{ing.description}

{ing.benefits.map((benefit, bIdx) => (
{benefit}
))}
{/* Products Linking */}
موجود در محصولات
{hasIngredient.length > 0 ? hasIngredient.map(p => ( {p.name}

{p.name}

)) : (

محصولی با این ماده مؤثره یافت نشد.

)}
{/* Decorative backdrop */}
); })}
); })()} {/* Quality Badge */}
{Array.from({length: 120}).map((_, i) => (
))}

تمام مواد اولیه ما دارای گواهینامه
گرید دارویی اختصاصی هستند.

این یعنی استانداردی فراتر از مکمل‌های معمولی، مشابه استانداردهای تولید دارو در اتحادیه اروپا.

۱۰۰٪
تست آزمایشگاهی
GMP
استاندارد تولید
ISO
کنترل کیفیت
); }