From 070de3ac1ea79c452ed8fbd7c68727c733d046c7 Mon Sep 17 00:00:00 2001
From: zaza
Date: Tue, 26 May 2026 18:39:17 +0330
Subject: [PATCH] Brighten palette, rename to Andishkade Foolad Ayandeh, fix
risk ticker loop
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- Shift design tokens from warm beige/brown to cool off-white + slate inks
with vivid corporate red/amber/green accents
- Rename brand from "اندیشکده فولاد ایران" / "Iran Steel Policy Institute"
to "اندیشکده فولاد آینده" / "Future Steel Policy Institute"
- Replace JS-clone seamless-loop in RiskSection with JSX-doubled items,
immune to StrictMode double-invocation that was leaving the ticker blank
Co-Authored-By: Claude Opus 4.7 (1M context)
---
index.html | 4 +--
src/app/layout/Footer.tsx | 6 ++--
src/app/layout/Header.tsx | 6 ++--
src/index.css | 28 +++++++++----------
.../Home/sections/LatestNewsBentoSection.tsx | 2 +-
src/pages/Home/sections/RiskSection.tsx | 23 ++++-----------
src/pages/Risks/Risks.tsx | 2 +-
src/pages/Scanner/Scanner.tsx | 2 +-
src/pages/Special/Special.tsx | 2 +-
src/pages/Subscribe/Subscribe.tsx | 2 +-
10 files changed, 32 insertions(+), 45 deletions(-)
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"
>
- © ۱۴۰۳ اندیشکده فولاد ایران — تمام حقوق محفوظ است
+ © ۱۴۰۳ اندیشکده فولاد آینده — تمام حقوق محفوظ است
دکتر علی محمدی
-
مدیر ارشد پژوهش · اندیشکده فولاد
+
مدیر ارشد پژوهش · اندیشکده فولاد آینده
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 (
-
- اندیشکده فولاد ایران — پایش ریسک
+ اندیشکده فولاد آینده — پایش ریسک
- اندیشکده فولاد ایران — دادههای بازار
+ اندیشکده فولاد آینده — دادههای بازار
- اندیشکده فولاد ایران — پژوهشهای تخصصی
+ اندیشکده فولاد آینده — پژوهشهای تخصصی
- اندیشکده فولاد ایران
+ اندیشکده فولاد آینده