"use client";
import {
ArrowLeft,
ArrowUpLeft,
BriefcaseBusiness,
Camera,
ChevronLeft,
ChevronRight,
CircleUserRound,
FlaskConical,
Gauge,
Globe2,
Link as LinkIcon,
Mail,
MapPin,
Menu,
MessageCircle,
Phone,
Search,
Settings,
ShieldCheck,
SlidersHorizontal,
Sparkles,
X,
} from "lucide-react";
import NextLink from "next/link";
import type { FormEvent } from "react";
import { useEffect, useMemo, useRef, useState } from "react";
import {
cssAspectRatio,
fetchHomeStaticImageSlots,
fetchLatestProducts,
productPath,
type Product,
type StaticImageSlot,
} from "./lib/meshkee";
import HeaderNavigation from "./components/HeaderNavigation";
const assetBase = "/assets";
type HeroSlide = {
image: string;
eyebrow: string;
title: string;
text: string;
linkUrl?: string;
aspectRatio?: string;
};
const heroSlides: HeroSlide[] = [
{
image: `${assetBase}/i8SsUDDMLv.jpg`,
eyebrow: "WIRE & CABLE MACHINERY",
title: "تجربهای مطمئن در تأمین ماشینآلات صنعتی",
text: "راهکارهای تخصصی برای خطوط تولید سیم و کابل؛ از انتخاب و خرید تا نصب و راهاندازی.",
},
{
image: `${assetBase}/s9zJRbKrhE.jpg`,
eyebrow: "ENGINEERING THE FUTURE",
title: "مهندسی دقیق، عملکرد ماندگار",
text: "دسترسی به برندهای معتبر جهانی و مشاوره فنی متناسب با نیاز خط تولید شما.",
},
{
image: `${assetBase}/ZLxH2tZ4dR.jpg`,
eyebrow: "SAMAN ANDISH CO.",
title: "یک مسیر کوتاهتر تا خط تولید بهتر",
text: "ماشینآلات نو و کارکرده، مواد اولیه و خدمات مهندسی در یک مجموعه تخصصی.",
},
];
const categories = [
{
title: "ماشینآلات",
en: "MACHINERY",
image: `${assetBase}/MDJVsqMgHe.jpg`,
count: "+۱۲۰ دستگاه",
},
{
title: "خدمات فنی و مهندسی",
en: "TECHNICAL SERVICES",
image: `${assetBase}/68atRerNly.jpg`,
count: "از طراحی تا اجرا",
},
{
title: "مواد اولیه",
en: "RAW MATERIALS",
image: `${assetBase}/yxEFuyUDrT.jpg`,
count: "تأمین تخصصی",
},
];
type DisplayProduct = {
id: string;
title: string;
en: string;
category: string;
image: string;
code: string;
href: string;
};
const fallbackProducts: DisplayProduct[] = [
{
id: "fallback-1",
title: "دستگاه کوادینگ ۶۰۰ میلیمتر",
en: "600mm Quadding Machine | QUA-21 | LESMO",
category: "دستگاه تابنده",
image: `${assetBase}/product-quadding.jpg`,
code: "LESMO / QUA-21",
href: "#products",
},
{
id: "fallback-2",
title: "بریدر ۱۶ کریر",
en: "16 Carriers Braider | 16N4 | SPIRKA",
category: "دستگاه بافنده",
image: `${assetBase}/product-braider.jpg`,
code: "SPIRKA / 16N4",
href: "#products",
},
{
id: "fallback-3",
title: "خط کشش ۰.۵–۰.۱۵ میلیمتر",
en: "0.15–0.5 SQmm Drawing Line | TRB3 | SAMP",
category: "دستگاه کشش",
image: `${assetBase}/product-drawing-line.jpg`,
code: "SAMP / TRB3",
href: "#products",
},
{
id: "fallback-4",
title: "پیآف ۶۰۰ میلیمتر",
en: "600mm Pay Off | TAP D-0800 | KDM",
category: "دستگاه پیآف",
image: `${assetBase}/product-payoff.jpg`,
code: "KDM / TAP D-0800",
href: "#products",
},
];
function toDisplayProduct(product: Product, index: number): DisplayProduct {
const fallback = fallbackProducts[index % fallbackProducts.length];
const brand =
typeof product.brand === "string"
? product.brand
: product.brand?.nameFa || product.brand?.name;
return {
id: product.id,
title: product.nameFa || product.title,
en: product.title,
category:
product.categoryNameFa || product.categoryName || "ماشینآلات صنعتی",
image:
product.thumbnailUrl ||
product.thumbnail ||
product.image ||
fallback.image,
code: brand || product.categoryName || "SAMAN ANDISH",
href: productPath(product),
};
}
const news = [
{
title: "شرکت مهندسی، مشاوره و بازرگانی HService",
date: "۰۸ خرداد ۱۴۰۲",
image: `${assetBase}/news-hservice.jpg`,
tag: "همکاری تجاری",
},
{
title: "نمایشگاههای تجاری پیشرو Wire و Tube",
date: "۲۴ اردیبهشت ۱۴۰۲",
image: `${assetBase}/news-wire-tube.jpg`,
tag: "رویداد",
},
{
title: "انرژی پاک و بازار گواهی انرژی تجدیدپذیر",
date: "۱۲ اردیبهشت ۱۴۰۲",
image: `${assetBase}/news-green-energy.jpg`,
tag: "دانش فنی",
},
];
const customerLogos = [
"JkHpH80NQA.png",
"StBGKS3FHm.png",
"GAQiN0WIK5.png",
"lRkE9W3Pi0.png",
"mTdHxPHztj.png",
"JcGMFJ8Tv5.png",
"WIvmqxoUPv.png",
"XhaGH9MU5o.png",
"PypItIBoI0.png",
"0Y6asKSTsI.png",
];
function SectionTitle({
eyebrow,
title,
light = false,
}: {
eyebrow: string;
title: string;
light?: boolean;
}) {
return (
{eyebrow}
{title}
);
}
export default function Home() {
const [mobileOpen, setMobileOpen] = useState(false);
const [activeSlide, setActiveSlide] = useState(0);
const [query, setQuery] = useState("");
const [searchOpen, setSearchOpen] = useState(false);
const [staticImageSlots, setStaticImageSlots] = useState([]);
const [displayProducts, setDisplayProducts] =
useState(fallbackProducts);
const searchInput = useRef(null);
const slotsByKey = useMemo(
() => new Map(staticImageSlots.map((slot) => [slot.key, slot])),
[staticImageSlots],
);
const activeHeroSlides = useMemo(() => {
const slot = slotsByKey.get("slider");
if (!slot?.images.length) return heroSlides;
return slot.images.map((image, index) => {
const fallback = heroSlides[index % heroSlides.length];
return {
image: image.url || fallback.image,
eyebrow: image.titleEn || fallback.eyebrow,
title: image.titleFa || fallback.title,
text: image.subtext || fallback.text,
linkUrl: image.linkUrl || undefined,
aspectRatio: cssAspectRatio(slot.aspectRatio),
};
});
}, [slotsByKey]);
const activeCategories = useMemo(() => {
const slot = slotsByKey.get("three-categories");
return categories.map((fallback, index) => {
const image = slot?.images[index];
if (!image) {
return {
...fallback,
linkUrl: undefined,
aspectRatio: undefined,
};
}
return {
...fallback,
image: image.url || fallback.image,
title: image.titleFa || fallback.title,
en: image.titleEn || fallback.en,
count: image.subtext || fallback.count,
linkUrl: image.linkUrl || undefined,
aspectRatio: cssAspectRatio(slot?.aspectRatio),
};
});
}, [slotsByKey]);
const aboutImages = slotsByKey.get("about-us-images");
const aboutMainImage = aboutImages?.images[0];
const aboutSecondaryImage = aboutImages?.images[1];
const activeHeroIndex = activeSlide % activeHeroSlides.length;
const activeHero = activeHeroSlides[activeHeroIndex];
useEffect(() => {
const controller = new AbortController();
fetchHomeStaticImageSlots(controller.signal)
.then(setStaticImageSlots)
.catch(() => {
// Keep the local image fallbacks when the API is unavailable.
});
fetchLatestProducts(4, controller.signal)
.then((items) => {
if (items.length) setDisplayProducts(items.map(toDisplayProduct));
})
.catch(() => {
// Keep the local product fallbacks when the API is unavailable.
});
return () => controller.abort();
}, []);
useEffect(() => {
if (activeHeroSlides.length <= 1) return;
const timer = window.setInterval(
() =>
setActiveSlide((current) => (current + 1) % activeHeroSlides.length),
6500,
);
return () => window.clearInterval(timer);
}, [activeHeroSlides.length]);
const results = useMemo(() => {
const normalized = query.trim().toLowerCase();
if (!normalized) return displayProducts.slice(0, 3);
return displayProducts.filter((product) =>
[product.title, product.en, product.category, product.code]
.join(" ")
.toLowerCase()
.includes(normalized),
);
}, [displayProducts, query]);
const focusSearch = () => {
document.getElementById("smart-search")?.scrollIntoView({
behavior: "smooth",
block: "center",
});
window.setTimeout(() => {
searchInput.current?.focus();
setSearchOpen(true);
}, 500);
};
const submitSearch = (event: FormEvent) => {
event.preventDefault();
setSearchOpen(true);
};
return (
شریک تخصصی صنعت سیم و کابل ایران
setMobileOpen(false)}
/>
درخواست مشاوره
{activeHeroSlides.map((slide, index) => (
{slide.linkUrl ? (
) : (

)}
))}
{activeHero.eyebrow}
{activeHero.title}
{activeHero.text}
25+
YEARS EXPERIENCE
120+
INDUSTRIAL MACHINES
{activeHeroSlides.map((slide, index) => (
دنبال چه دستگاهی هستید؟
نام، مدل، برند یا دستهبندی را وارد کنید
جستجوی سریع:
{["اکسترودر", "دستگاه کشش", "تیکآپ", "پیآف"].map((item) => (
))}
{searchOpen && (
{results.length} نتیجه پیشنهادی
{results.length ? (
results.map((product) => (
{product.title}
{product.en}
{product.category}
))
) : (
دستگاهی با این مشخصات پیدا نشد؛ برای راهنمایی با ما تماس بگیرید.
)}
)}
{displayProducts.map((product) => (
جدیدترین
{product.category}
{product.title}
{product.en}
))}
{aboutMainImage?.linkUrl ? (
) : (

)}
{aboutSecondaryImage?.linkUrl ? (
) : (

)}
۲۵
سال تجربه تخصصی
سامان اندیش، همراه فنی و تجاری تولیدکنندگان سیم و کابل در انتخاب
هوشمندانه تجهیزات و توسعه خطوط تولید است.
با تکیه بر تجربه اجرایی، شبکه بینالمللی و شناخت دقیق فرآیندهای
تولید، راهکاری متناسب با ظرفیت، بودجه و اهداف هر کارخانه ارائه
میکنیم.
تضمین اصالت
ارزیابی فنی پیش از خرید
پشتیبانی اجرایی
نصب، راهاندازی و آموزش
بیشتر درباره ما
{[
[Globe2, "رقابت در بازار جهانی", "GLOBAL COMPETITION"],
[Gauge, "کیفیت استاندارد", "STANDARD QUALITY"],
[BriefcaseBusiness, "مهندسی نوآورانه", "SMART ENGINEERING"],
[FlaskConical, "تکنولوژی پیشرفته", "ADVANCED TECHNOLOGY"],
].map(([Icon, title, en], index) => {
const ValueIcon = Icon as typeof Globe2;
return (
0{index + 1}
{title as string}
{en as string}
);
})}
{news.map((item, index) => (
{item.tag}
{item.title}
تازهترین تحولات، فناوریها و رویدادهای تخصصی صنعت سیم و
کابل را با تحلیل کارشناسان سامان اندیش دنبال کنید.
ادامه مطلب
))}
{[...customerLogos, ...customerLogos].map((logo, index) => (
))}
برای ارتقای خط تولید آمادهاید؟
ماشین مناسب را با کمک متخصصان ما پیدا کنید.
شروع گفتگو
);
}