fix: register form in jouyrnalis
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Sabda Yagra 2026-04-06 12:08:03 +07:00
parent c7eecd40c0
commit 6e3d01cdc0
1 changed files with 98 additions and 2 deletions

View File

@ -88,12 +88,16 @@ export default function SignUp() {
return;
}
// Umum dan Jurnalis → gunakan API createUser
if (role === "umum" || role === "jurnalis") {
if (role === "umum") {
await handleCreateUserUmum(e);
return;
}
if (role === "jurnalis") {
await handleCreateUserJurnalis(e);
return;
}
// Kontributor (sementara ikut umum)
if (role === "kontributor") {
await handleCreateUserKontributor(e);
@ -280,6 +284,98 @@ export default function SignUp() {
}
};
const handleCreateUserJurnalis = async (e: React.FormEvent) => {
e.preventDefault();
// ✅ VALIDASI
if (!fullname.trim()) {
MySwal.fire("Peringatan", "Nama lengkap wajib diisi", "warning");
return;
}
if (!validateEmail(email)) {
MySwal.fire("Peringatan", "Email tidak valid", "warning");
return;
}
if (!validatePassword(password)) {
MySwal.fire("Peringatan", "Password minimal 8 karakter", "warning");
return;
}
if (!membershipType) {
MySwal.fire("Peringatan", "Jenis keanggotaan wajib diisi", "warning");
return;
}
if (!certNumber.trim()) {
MySwal.fire("Peringatan", "Nomor sertifikasi wajib diisi", "warning");
return;
}
// ✅ GENERATE USERNAME
const autoUsername =
fullname.trim().replace(/\s+/g, "-").toLowerCase() || email.split("@")[0];
if (!validateUsername(autoUsername)) {
MySwal.fire("Peringatan", "Username tidak valid", "warning");
return;
}
// ✅ PAYLOAD (SUDAH DISESUAIKAN BACKEND)
const payload = {
address: "",
clientId: "78356d32-52fa-4dfc-b836-6cebf4e3eead",
dateOfBirth: "",
email,
fullName: fullname,
genderType: "",
identityGroup: "",
identityGroupNumber: "",
identityNumber: certNumber, // 🔥 penting
identityType: "KTP",
lastEducation: "",
password,
phoneNumber: "08123456789", // 🔥 jangan kosong dulu
userLevelId: 1,
userRoleId: 3, // 🔥 pastikan ini role jurnalis
username: autoUsername + "-" + Date.now(),
workType: membershipType.toUpperCase(),
};
console.log("📦 PAYLOAD JURNALIS:", payload);
try {
setIsLoading(true);
const res = await createUser(payload);
if (res?.error) {
MySwal.fire("Gagal", res?.message || "Gagal mendaftar", "error");
} else {
MySwal.fire({
title: "Berhasil!",
text: "Akun jurnalis berhasil dibuat",
icon: "success",
showConfirmButton: false,
timer: 2000,
});
setTimeout(() => router.push("/auth"), 2000);
}
} catch (err) {
console.error("❌ ERROR JURNALIS:", err);
MySwal.fire(
"Error",
"Terjadi kesalahan server saat registrasi jurnalis",
"error",
);
} finally {
setIsLoading(false);
}
};
const validateTenantForm = () => {
const errors: any = {};