/* global React, MJ */
const { useState: useStateK } = React;
/* ============================================================
KUESIONER — "Kenali Potensimu, Temukan Arahmu"
Student Interest Card · Majelis Kajian Mahasiswa DIPA
Opsi & batas pilihan mengikuti dokumen kuesioner resmi.
============================================================ */
const OPT_KEMBANGKAN = ['Akademik & prestasi','Leadership / kepemimpinan','Public speaking','Networking & relasi','Organisasi','Entrepreneurship / bisnis','Digital & media','Pengembangan diri','Kegiatan sosial','Keagamaan / spiritualitas'];
const OPT_KEGIATAN = ['Diskusi & sharing','Pelatihan skill','Leadership','Public speaking','Kajian keislaman','Mentoring','Networking','Kegiatan sosial','Kompetisi','Olahraga & kebersamaan'];
const OPT_TANTANGAN = ['Akademik','Manajemen waktu','Pergaulan','Media sosial','Menentukan masa depan & karier','Finansial','Kurang percaya diri','Menemukan lingkungan yang positif','Bingung menentukan arah hidup'];
const OPT_TERHUBUNG = ['Ya, kabari saya!','Boleh, saya ingin tahu lebih dulu','Belum untuk saat ini'];
const API_BASE = (window.MJ_API_BASE || '');
function ChipGroup({ options, value, onChange, max, name }) {
const toggle = (opt) => {
if (value.includes(opt)) onChange(value.filter(v => v !== opt));
else if (value.length < max) onChange([...value, opt]);
};
return (
{options.map(opt => {
const on = value.includes(opt);
const full = !on && value.length >= max;
return (
);
})}
);
}
function KuesionerSection() {
const [step, setStep] = useStateK(0); // 0 = form, 1 = sukses
const [busy, setBusy] = useStateK(false);
const [err, setErr] = useStateK('');
const [f, setF] = useStateK({
nama: '', prodi: '', angkatan: '', whatsapp: '', instagram: '',
kembangkan: [], kembangkan_lainnya: '',
kegiatan: [], kegiatan_lainnya: '',
tantangan: [], tantangan_lainnya: '',
harapan: '', terhubung: '', website: ''
});
const up = (k, v) => setF(s => ({ ...s, [k]: v }));
const submit = async (e) => {
e.preventDefault();
setErr('');
if (f.kembangkan.length === 0 && !f.kembangkan_lainnya.trim()) {
return setErr('Bagian B: pilih minimal 1 hal yang ingin kamu kembangkan.');
}
if (f.kegiatan.length === 0 && !f.kegiatan_lainnya.trim()) {
return setErr('Bagian C: pilih minimal 1 kegiatan yang menarik buatmu.');
}
if (f.tantangan.length === 0 && !f.tantangan_lainnya.trim()) {
return setErr('Bagian D: pilih minimal 1 tantangan.');
}
if (!f.terhubung) {
return setErr('Bagian F: pilih salah satu opsi.');
}
setBusy(true);
try {
const r = await fetch(API_BASE + '/api/kuesioner', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(f)
});
const j = await r.json().catch(() => ({}));
if (!r.ok || !j.ok) throw new Error(j.error || 'Gagal mengirim. Coba lagi.');
setStep(1);
window.scrollTo({ top: document.getElementById('kuesioner').offsetTop - 40, behavior: 'smooth' });
} catch (e2) {
setErr(e2.message === 'Failed to fetch'
? 'Tidak bisa terhubung ke server. Cek koneksi internetmu lalu coba lagi.'
: e2.message);
} finally {
setBusy(false);
}
};
return (
04 — Student Interest Card
Kenali potensimu, temukan arahmu.
Masa kuliah adalah kesempatan untuk belajar, berkembang, membangun relasi, menemukan potensi,
dan mempersiapkan masa depan. Yuk, kenali minatmu dan hal yang ingin kamu kembangkan
selama menjadi mahasiswa. ± 2 menit.