diff --git a/index.html b/index.html index 25aab4c..281598c 100644 --- a/index.html +++ b/index.html @@ -4,13 +4,13 @@ - + - اندیشکده فولاد ایران — تحلیل راهبردی صنعت فولاد + اندیشکده فولاد آینده — تحلیل راهبردی صنعت فولاد
diff --git a/src/app/layout/Footer.tsx b/src/app/layout/Footer.tsx index 1f2a2d7..cbcbeeb 100644 --- a/src/app/layout/Footer.tsx +++ b/src/app/layout/Footer.tsx @@ -106,7 +106,7 @@ export function Footer() { lineHeight: 1.2, marginBottom: 4, }} > - اندیشکده فولاد ایران + اندیشکده فولاد آینده
- IRAN STEEL POLICY INSTITUTE + FUTURE STEEL POLICY INSTITUTE

مرکز مستقل تحلیل راهبردی و سیاست‌گذاری صنعت فولاد و فلزات کشور @@ -183,7 +183,7 @@ export function Footer() { }} className="max-w-7xl mx-auto w-full px-12 max-md:px-5" > - © ۱۴۰۳ اندیشکده فولاد ایران — تمام حقوق محفوظ است + © ۱۴۰۳ اندیشکده فولاد آینده — تمام حقوق محفوظ است

{['حریم خصوصی', 'شرایط استفاده', 'درگاه پرداخت', 'نقشه سایت'].map(l => ( - اندیشکده فولاد ایران + اندیشکده فولاد آینده - IRAN STEEL POLICY INSTITUTE + FUTURE STEEL POLICY INSTITUTE @@ -442,7 +442,7 @@ export default function Header() { }} > - اندیشکده فولاد ایران + اندیشکده فولاد آینده
دکتر علی محمدی
-
مدیر ارشد پژوهش · اندیشکده فولاد
+
مدیر ارشد پژوهش · اندیشکده فولاد آینده
diff --git a/src/pages/Home/sections/RiskSection.tsx b/src/pages/Home/sections/RiskSection.tsx index 9774246..74f318d 100644 --- a/src/pages/Home/sections/RiskSection.tsx +++ b/src/pages/Home/sections/RiskSection.tsx @@ -1,4 +1,3 @@ -import { useEffect, useRef, useState } from 'react' import { Link } from 'react-router-dom' /* ─── Risk data ──────────────────────────────────────────── */ @@ -75,19 +74,9 @@ const LEVEL = { /* ─── Section ────────────────────────────────────────────── */ export default function RiskSection() { - const containerRef = useRef(null) - const listRef = useRef(null) - const [ready, setReady] = useState(false) - - useEffect(() => { - if (!containerRef.current || !listRef.current) return - /* Clone all items for seamless loop */ - const original = Array.from(listRef.current.children) - original.forEach(item => { - listRef.current!.appendChild(item.cloneNode(true)) - }) - setReady(true) - }, []) + /* Duplicate items for seamless infinite loop (handled in JSX, not effect, to + stay immune to StrictMode double-invocation that would otherwise clone twice). */ + const loopItems = [...riskItems, ...riskItems] return (
@@ -144,7 +133,6 @@ export default function RiskSection() { {/* ── Auto-scroll ticker ── */}
    (e.currentTarget.style.animationPlayState = 'paused')} onMouseLeave={e => (e.currentTarget.style.animationPlayState = 'running')} > - {riskItems.map((item, idx) => { + {loopItems.map((item, idx) => { const cfg = LEVEL[item.level] return (
  • - اندیشکده فولاد ایران — پایش ریسک + اندیشکده فولاد آینده — پایش ریسک

- اندیشکده فولاد ایران — داده‌های بازار + اندیشکده فولاد آینده — داده‌های بازار

- اندیشکده فولاد ایران — پژوهش‌های تخصصی + اندیشکده فولاد آینده — پژوهش‌های تخصصی

- اندیشکده فولاد ایران + اندیشکده فولاد آینده