/* global React, MJ */ const { useState: useStateP2 } = React; /* ============== AKTIVITAS MJ (hal. 6 dokumen pengenalan) ============== Delapan aktivitas disebut apa adanya di dokumen. Deskripsi di bawah menjelaskan bentuk kegiatannya — jadwal & jam TIDAK dicantumkan karena belum ada sumbernya. ==================================================================== */ const AKTIVITAS = [ { n: "01", name: "Kajian Rutin", foto: "assets/foto/halaqoh-ikhwan.jpg", fotoAlt: "Peserta kajian menyimak materi di masjid kampus", kind: "Keilmuan", output: "Pemahaman yang jernih", body: "Forum kajian berkala yang jadi denyut utama MJ — ruang menuntut ilmu bersama, mendalami aqidah dan syariat Islam sesuai Al-Qur'an dan As-Sunnah.", chips: ["Terbuka untuk umum", "Aqidah & syariat", "Rutin"], color: "accent", flagship: true }, { n: "02", name: "Muslimah Islamic Talks", foto: "assets/foto/muslimah-islamic-talks.jpg", fotoAlt: "Forum kajian muslimah", kind: "Keilmuan · Akhwat", output: "Ruang khusus muslimah", body: "Forum kajian yang dikhususkan bagi mahasiswi muslimah — membahas tema yang dekat dengan keseharian akhwat di kampus, dalam suasana yang nyaman dan saling menguatkan.", chips: ["Khusus akhwat", "Tema keseharian", "Diskusi"], color: "accent" }, { n: "03", name: "Pembinaan / Halaqoh", foto: "assets/foto/kajian-akhwat.jpg", fotoAlt: "Halaqoh kelompok kecil", kind: "Kaderisasi", output: "Pembinaan berkelanjutan", body: "Pembinaan dalam kelompok kecil — inti dari proses kaderisasi MJ. Di sinilah anggota dibina secara berkelanjutan hingga lahir pemahaman yang jernih terhadap aqidah dan syariat Islam.", chips: ["Kelompok kecil", "Berkelanjutan", "Inti kaderisasi"], color: "accent", flagship: true }, { n: "04", name: "Mabit", foto: "assets/foto/mabit-akhwat.jpg", fotoAlt: "Kebersamaan peserta mabit", kind: "Ruhiyah", output: "Penguatan ruhiyah", body: "Malam bina iman dan taqwa — menginap bersama untuk mendekatkan diri kepada Allah, memperkuat ruhiyah, sekaligus mempererat ukhuwah antaranggota.", chips: ["Menginap", "Qiyamul lail", "Ukhuwah"], color: "primary" }, { n: "05", name: "Event Ikhwan–Akhwat", foto: "assets/foto/rihlah-akhwat.jpg", fotoAlt: "Kegiatan bersama di luar kampus", kind: "Ukhuwah", output: "Kebersamaan terjaga", body: "Kegiatan bersama yang dirancang dengan tetap menjaga adab dan batasan syar'i — ruang bagi seluruh anggota MJ untuk saling mengenal dan bekerja sama.", chips: ["Adab terjaga", "Seluruh anggota", "Kolaboratif"], color: "primary" }, { n: "06", name: "Bakti Sosial", foto: "assets/foto/baksos-ikhwan.jpg", fotoAlt: "Penggalangan dana bakti sosial", kind: "Pengabdian", output: "Manfaat nyata", body: "Turun langsung ke masyarakat. Wujud nyata bahwa Islam hadir sebagai solusi — bukan sekadar identitas — dan bahwa ilmu yang dipelajari berujung pada amal.", chips: ["Turun ke masyarakat", "Amal nyata", "Sosial"], color: "primary" }, { n: "07", name: "Gerakan Kampus", kind: "Dakwah", output: "Islam hadir di kampus", body: "Menghidupkan spirit dakwah di lingkungan kampus — memastikan nilai Islam ikut mewarnai aktivitas intra kampus, dari akademik sampai organisasi.", chips: ["Intra kampus", "Syiar", "Kolaborasi lembaga"], color: "primary" }, { n: "08", name: "Konten Dakwah & Sport", foto: "assets/foto/sport-akhwat.jpg", fotoAlt: "Kegiatan olahraga bersama", kind: "Media & Jasmani", output: "Dakwah & badan sehat", body: "Dakwah lewat konten digital agar pesan Islam menjangkau lebih luas, ditambah kegiatan olahraga bersama — karena badan yang sehat menopang ibadah dan gerak dakwah.", chips: ["Konten digital", "Olahraga bersama", "Syiar online"], color: "primary" } ]; function ProgramSection() { const [active, setActive] = useStateP2(0); React.useEffect(() => { const targets = document.querySelectorAll('.cta-deadline'); const io = new IntersectionObserver((entries) => { entries.forEach(e => { if (e.isIntersecting) { e.target.classList.add('in'); io.unobserve(e.target); } }); }, { threshold: 0.3 }); targets.forEach(t => io.observe(t)); return () => io.disconnect(); }, []); return (
02 — Aktivitas MJ

Delapan ruang untuk bertumbuh bersama.

Dari kajian dan halaqoh, mabit, sampai bakti sosial dan konten dakwah — aktivitas MJ dirancang agar anggota tumbuh utuh: ilmunya, ruhiyahnya, ukhuwahnya, dan amalnya.

{AKTIVITAS.map((p, i) => ( ))}
AKTIVITAS {AKTIVITAS[active].n} {AKTIVITAS[active].kind}

{AKTIVITAS[active].name}

{AKTIVITAS[active].body}

{AKTIVITAS[active].chips.map(c => {c})}
{AKTIVITAS[active].foto && (
{AKTIVITAS[active].fotoAlt}
)}
Yang dibangun
{AKTIVITAS[active].output}
{AKTIVITAS[active].flagship && (
Agenda inti
Tulang punggung pembinaan di MJ.
)}
); } /* ============== GALERI — dokumentasi kegiatan ============== Sumber foto: dokumen resmi "Pengenalan Majelis Jihad" (hal. 3-7). Keterangan dibuat netral & deskriptif; tanggal/lokasi tidak dicantumkan karena tidak tertulis di dokumen. ========================================================== */ const GALERI = [ { src: "assets/foto/kajian-akhwat.jpg", cap: "Halaqoh akhwat", cls: "is-wide" }, { src: "assets/foto/halaqoh-ikhwan.jpg", cap: "Kajian ikhwan" }, { src: "assets/foto/sport-akhwat.jpg", cap: "Sport", cls: "is-tall" }, { src: "assets/foto/muslimah-islamic-talks.jpg", cap: "Muslimah Islamic Talks" }, { src: "assets/foto/mabit-akhwat.jpg", cap: "Kebersamaan mabit", cls: "is-wide" }, { src: "assets/foto/pembinaan-ikhwan.jpg", cap: "Pembinaan kelompok kecil" }, { src: "assets/foto/rihlah-akhwat.jpg", cap: "Kegiatan luar kampus", cls: "is-tall" }, { src: "assets/foto/baksos-ikhwan.jpg", cap: "Bakti sosial" }, ]; function GaleriSection() { return (
Dokumentasi

Yang terjadi di lapangan.

Bukan konsep di atas kertas — ini potongan keseharian MJ: halaqoh di masjid kampus, kajian muslimah, mabit, olahraga bareng, sampai turun menggalang bantuan.

{GALERI.map((g, i) => (
{g.cap}
{g.cap}
))}
); } /* ============== VISI & MISI (hal. 4–5) ============== */ function MisiSection() { return (
03 — Visi & Misi

Arah gerak Majelis Jihad.

Visi

Sebagai sarana dan wahana pengembangan kreativitas dan keilmuan mahasiswa muslim serta memperkuat aqidah, akhlak, dan ukhuwah islamiyah.

Lima misi
{MJ.misi.map((m, i) => (
MISI 0{i+1}
{["◈","◇","◆","◉","★"][i]}
{m}
))}
); } Object.assign(window, { ProgramSection, GaleriSection, MisiSection });