const { useState, useEffect } = React; // Navbar const Navbar = () => { const [scrolled, setScrolled] = useState(false); useEffect(() => { const handleScroll = () => setScrolled(window.scrollY > 50); window.addEventListener('scroll', handleScroll); return () => window.removeEventListener('scroll', handleScroll); }, []); return ( ); }; // Hero const Hero = () => (
{/* Replace with: */} {/* Or: Hero */}
سیستم رشد ۴بُعدی عبارت است از:

انسان سازی نه فقط درس خوانی

در مکتب وفاق، هر طفل یک استعداد منحصر به فرد است. ما با رویکرد ۴بُعدی، فکر، اخلاق، مهارت‌های اجتماعی و توانایی‌های عملی را همزمان انکشاف می‌دهیم.

ثبت نام کنید رویکرد ما
document.getElementById('stats').scrollIntoView({ behavior: 'smooth' })}> بیشتر بدانید
); // Stats with animated counter const Stats = () => { const [visible, setVisible] = useState(false); const [counts, setCounts] = useState([0, 0, 0, 0]); const targets = [250, 30, 5, 2]; const labels = ['شاگرد', 'کدر تعلیمی', 'زبان تدریس', 'تایم']; useEffect(() => { const observer = new IntersectionObserver(([entry]) => { if (entry.isIntersecting && !visible) { setVisible(true); targets.forEach((target, i) => { let start = 0; const duration = 2000; const step = target / (duration / 16); const timer = setInterval(() => { start += step; if (start >= target) { start = target; clearInterval(timer); } setCounts(prev => { const newCounts = [...prev]; newCounts[i] = Math.floor(start); return newCounts; }); }, 16); }); } }, { threshold: 0.5 }); const el = document.getElementById('stats'); if (el) observer.observe(el); return () => observer.disconnect(); }, [visible]); return (
{counts.map((c, i) => (
{i < 2 ? '+' : ''}{c}
{labels[i]}
))}

projections for 1405

); }; // Philosophy 4D const Philosophy = () => (
چرا متفاوت هستیم؟

سیستم رشد ۴بُعدی انسان

یک انسان کامل فقط با نمره خوب ساخته نمی‌شود

{[ { dim: 'intellectual', icon: '🧠', title: 'بُعد فکری', desc: 'تفکر انتقادی، حل مسئله و کنجکاوی علمی', pts: ['تفکر تحلیلی', 'خلاقیت', 'سواد علمی'] }, { dim: 'character', icon: '⭐', title: 'بُعد اخلاقی-معنوی', desc: 'ارزش‌های اسلامی، صداقت و رشد معنوی', pts: ['تقوا و ایمان', 'اخلاق نیکو', 'خودشناسی'] }, { dim: 'social', icon: '🤝', title: 'بُعد اجتماعی', desc: 'همکاری، رهبری و ارتباطات مؤثر', pts: ['کار تیمی', 'رهبری', 'همدلی'] }, { dim: 'practical', icon: '⚡', title: 'بُعد عملی', desc: 'مهارت‌های زندگی و توانایی تطبیق دانش', pts: ['مهارت‌های عملی', 'کارآفرینی', 'خودکفایی'] } ].map((d, i) => (
{d.icon}

{d.title}

{d.desc}

    {d.pts.map((p, j) =>
  • {p}
  • )}
))}
); // Difference const Difference = () => (
تفاوت کلیدی

بدون فرهنگ مقایسه

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

{[{ t: 'ارزیابی رشد فردی', s: 'هر شاگرد با خودش مقایسه می‌شود' }, { t: 'کشف استعداد', s: 'سیستم شناسایی استعدادهای منحصر به فرد' }, { t: 'بازخورد سازنده', s: 'کارت‌های چهار رنگ به جای نمرات عددی' }].map((d, i) => (
{d.t}{d.s}
))}

مکاتب عادی

  • تمرکز بر نمره
  • رقابت و مقایسه
  • یک معیار برای همه
  • فقط بُعد فکری

مکتب وفاق

  • تمرکز بر رشد
  • کشف استعداد
  • مسیر فردی
  • ۴ بُعد انسانی
); // Programs const Programs = () => (
برنامه‌های ما

برنامه‌های تعلیمی

مسیرهای تعلیمی متنوع برای هر سن و هر نیاز

{[ { icon: '🌱', title: 'کودکستان', desc: 'پایه‌گذاری مهارت‌های اساسی برای ۴-۶ ساله‌ها', badge: 'سنین ۴-۶' }, { icon: '📚', title: 'دوره ابتدایی', desc: 'صنف‌های اول تا ششم با نصاب ۴بُعدی', badge: 'صنف ۱-۶' }, { icon: '🎓', title: 'دوره متوسطه', desc: 'صنف‌های هفتم تا نهم', badge: 'تازه آغاز می شود', coming: true }, { icon: '❄️', title: 'برنامه‌های زمستانی', desc: 'دوره‌های فشرده تقویت مهارت‌ها', badge: 'ویژه' }, { icon: '🌍', title: 'مکتب زبان وفاق', desc: 'آموزش انگلیسی، عربی و سایر زبان‌ها', badge: 'WLS' }, { icon: '📖', title: ' مَعْهَدُ وِفَاق', desc: 'آموزش تخصصی زبان عربی و علوم اسلامی', badge: 'WISAL' } ].map((p, i) => (
{p.icon}

{p.title}

{p.badge}
))}
); // Testimonials const Testimonials = () => (
وفاق از نزدیک

تجربه والدین و شاگردان

{[ { q: 'در مکتب‌های قبلی نتوانستم یک استعدادم را پیشرفت بدهم، اما امسال در مکتب وفاق سخنرانی و ترانه‌خوانی من بسیار خوب شد.', a: 'عرفان ر.', r: 'شاگرد', video: 'https://www.youtube.com/embed/xLitAys5EzM' }, { q: 'شخصیت من بسیار تغییر کرد... با همه حالا با مهربانی صحبت می‌کنم.', a: 'بنیامین ع.', r: 'شاگرد', video: 'https://www.youtube.com/embed/ECZAT3Ds-20' }, { q: 'اولادهای ما وفاق را خانۀ دوم خود حس کردند... روزهای جمعه کوشش می‌کردند زودتر پس بیایند.', a: 'روح الله ص.', r: 'والدین شاگرد', video: 'https://www.youtube.com/embed/kR-f5gN-txg' }, { q: 'مکتب وفاق شاگرد را از چهار بُعد تربیه می‌کند... تغییراتی که در طفل‌های خود دیدیم، بسیار خوش هستم.', a: 'ناجیه ص.', r: 'والدین شاگرد', video: 'https://www.youtube.com/embed/TaakpeI3lmQ' }, { q: 'زما زوی وفاق مکتب ته ډیر په شوق او علاقه ځی، ځکه په دې مکتب کی ځان خوندی او آرامه احساسوي.', a: ' پیروز ا.', r: 'والدین شاگرد', video: 'https://www.youtube.com/embed/Wv_5-lvRe7U' } ].map((t, i) => (

{t.q}

{t.a}{t.r}
))}
); // News const News = () => (
آخرین خبرها

اخبار و رویدادها

{[ { date: '۱۴۰۴', cat: 'رویداد', title: 'ضیافت وفاق در ماه ضیافت الهی', excerpt: 'مکتب وفاق محفل افطاری باشکوهی را با حضور والدین، استادان و شخصیت‌های فرهنگی برگزار کرد.', img: './images/news-1.jpg', link: 'https://www.facebook.com/share/p/1CM2iNcuph/?mibextid=wwXIfr' }, { date: '۱۴۰۴', cat: 'اعلان', title: 'استخدام برای سال تعلیمی ۱۴۰۵', excerpt: 'شبکه تعلیمی وفاق برای سال ۱۴۰۵ استخدام می‌کند. فرصت طلایی برای پیوستن به تیم متعهد به پرورش نسل طلایی.', img: './images/news-2.jpg', link: 'https://www.facebook.com/permalink.php?story_fbid=pfbid02mXmGKgE6RqPva9UEsGNNJsikCMV7a3GCBCrNFMnRCQVbrtJ16gSoNfKxGZyWXQDol&id=100064316277071' }, { date: '۱۴۰۴', cat: 'بلاگ', title: 'On The Craft of Human Building', excerpt: 'ما مهندس خانه‌مان را با دقت انتخاب می‌کنیم. آیا معمار شخصیت فرزندمان را هم با همین دقت انتخاب می‌کنیم؟', img: './images/news-3.jpg', link: 'https://wifaqschool.com/blog/choose-your-childrens-architects-wisely.html' } ].map((n, i) => ( ))}
); // CTA const CTA = () => (

آیا آماده‌اید فرزند شما متفاوت رشد کند؟

فورم درخواست شمولیت را آنلاین خانه‌پری کنید.

📝 درخواست آنلاین 💬 واتساپ
); // Footer const Footer = () => ( ); const SocialFloat = () => (
); // ── WIFAQ CHATBOT WIDGET ──────────────────────────────────── const WifaqChat = () => { const [isOpen, setIsOpen] = useState(false); const [messages, setMessages] = useState([]); const [input, setInput] = useState(''); const [isLoading, setIsLoading] = useState(false); const [hasGreeted, setHasGreeted] = useState(false); const messagesEndRef = React.useRef(null); const inputRef = React.useRef(null); // ── REPLACE WITH YOUR DEPLOYED GAS WEB APP URL ── const API_URL = 'https://script.google.com/macros/s/AKfycbyYyFpDViNHm2dr2YjADw9xPdymtC9YJtNptohe6lyfJCOhRte0a3WFZ2mS0Oyje-1u/exec'; // Generate a unique session ID per chat session const [sessionId] = useState(() => 'ses_' + Date.now() + '_' + Math.random().toString(36).substr(2, 6)); // Auto-scroll to bottom useEffect(() => { messagesEndRef.current?.scrollIntoView({ behavior: 'smooth' }); }, [messages]); // Focus input when chat opens useEffect(() => { if (isOpen && inputRef.current) { inputRef.current.focus(); } }, [isOpen]); // Welcome message on first open useEffect(() => { if (isOpen && !hasGreeted) { setHasGreeted(true); setMessages([{ role: 'assistant', content: 'سلام! 👋 من وفاق‌یار هستم — دستیار هوشمند مکتب وفاق.\n\nدر مورد ثبت نام، فیس، برنامه‌ها یا هر سوال دیگر کمک‌تان کرده می‌توانم. بفرمایید! 😊', }]); } }, [isOpen, hasGreeted]); // Helper: call GAS backend (handles CORS/redirect properly) const callAPI = async (message, history) => { const payload = JSON.stringify({ message, history, sessionId }); const res = await fetch(API_URL, { method: 'POST', body: payload, headers: { 'Content-Type': 'text/plain' }, }); return await res.json(); }; const sendMessage = async () => { const text = input.trim(); if (!text || isLoading) return; const userMsg = { role: 'user', content: text }; const updatedMessages = [...messages, userMsg]; setMessages(updatedMessages); setInput(''); setIsLoading(true); try { const history = updatedMessages .filter((_, i) => i > 0) .map(m => ({ role: m.role, content: m.content })); const data = await callAPI(text, history.slice(0, -1)); if (data.reply) { setMessages(prev => [...prev, { role: 'assistant', content: data.reply }]); } else { setMessages(prev => [...prev, { role: 'assistant', content: 'ببخشید، مشکلی پیش آمد. لطفاً دوباره تلاش کنید.' }]); } } catch (err) { setMessages(prev => [...prev, { role: 'assistant', content: 'ارتباط قطع شد. لطفاً انترنت خود را بررسی کنید.' }]); } finally { setIsLoading(false); } }; const handleKeyDown = (e) => { if (e.key === 'Enter' && !e.shiftKey) { e.preventDefault(); sendMessage(); } }; const getDir = (text) => { const rtlChars = /[\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF]/; return rtlChars.test(text) ? 'rtl' : 'ltr'; }; const formatMessage = (text) => { return text.split('\n').map((line, i) => { const parts = line.split(/(https?:\/\/[^\s]+)/g); return ( {i > 0 &&
} {parts.map((part, j) => /^https?:\/\//.test(part) ? {part} : part )}
); }); }; const handleQuickAction = (q) => { setInput(''); const userMsg = { role: 'user', content: q }; setMessages(prev => [...prev, userMsg]); setIsLoading(true); callAPI(q, []) .then(data => { setMessages(prev => [...prev, { role: 'assistant', content: data.reply || 'ببخشید، مشکلی پیش آمد.' }]); }) .catch(() => { setMessages(prev => [...prev, { role: 'assistant', content: 'ارتباط قطع شد.' }]); }) .finally(() => setIsLoading(false)); }; return ( <> {isOpen && (

وفاق‌یار

دستیار هوشمند شبکۀ تعلیمی وفاق

{messages.map((msg, i) => (
{formatMessage(msg.content)}
))} {isLoading && (
)}
{messages.length <= 1 && !isLoading && (
{[ 'ثبت نام چطور می‌شود؟', 'لایحۀ فیس', 'سیستم ۴بُعدی چیست؟', 'برنامه‌های تعلیمی', 'تماس با مکتب', ].map((q, i) => ( ))}
)}