"use client"; import React, { useState } from "react"; import Link from "next/link"; import Cookies from "js-cookie"; // import { close, error, loading } from "@/config/swal"; import { useRouter } from "next/navigation"; import withReactContent from "sweetalert2-react-content"; import { Input } from "../ui/input"; import { Button } from "../ui/button"; import { Label } from "../ui/label"; // import { saveActivity } from "@/service/activity-log"; import Swal from "sweetalert2"; import { error } from "console"; import { EyeFilledIcon, EyeSlashFilledIcon } from "../icons"; import { RadioGroup, RadioGroupItem } from "../ui/radio-group"; export default function SignUp() { const router = useRouter(); const [isVisible, setIsVisible] = useState(false); const [isVisibleSetup, setIsVisibleSetup] = useState([false, false]); const [oldEmail, setOldEmail] = useState(""); const [newEmail, setNewEmail] = useState(""); const [passwordSetup, setPasswordSetup] = useState(""); const [confPasswordSetup, setConfPasswordSetup] = useState(""); const toggleVisibility = () => setIsVisible(!isVisible); const [needOtp, setNeedOtp] = useState(false); const [isFirstLogin, setFirstLogin] = useState(false); const [otpValue, setOtpValue] = useState(""); const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const [accessData, setAccessData] = useState(); const [profile, setProfile] = useState(); const [isValidEmail, setIsValidEmail] = useState(false); const [isResetPassword, setIsResetPassword] = useState(false); const [checkUsernameValue, setCheckUsernameValue] = useState(""); const MySwal = withReactContent(Swal); const setValUsername = (e: any) => { const uname = e.replaceAll(/[^\w.-]/g, ""); setUsername(uname.toLowerCase()); }; const onSubmit = () => { // Simpan userId dummy ke cookie Cookies.set("userId", "3"); // (Opsional) Simpan juga data lainnya jika dibutuhkan // Cookies.set("username", username); // Redirect ke halaman dashboard atau homepage router.push("/"); // Ganti dengan path sesuai kebutuhan }; const [step, setStep] = useState<"login" | "otp">("login"); const [email, setEmail] = useState(""); const [role, setRole] = useState("umum"); const [otp, setOtp] = useState(["", "", "", "", "", ""]); const [membership, setMembership] = useState(""); const [certNumber, setCertNumber] = useState(""); const [membershipType, setMembershipType] = useState(""); const [nrp, setNrp] = useState(""); const [firstName, setFirstName] = useState(""); const [lastName, setLastName] = useState(""); const [whatsapp, setWhatsapp] = useState(""); const [namaTenant, setNamaTenant] = useState(""); const [tenantPassword, setTenantPassword] = useState(""); const [confirmTenantPassword, setConfirmTenantPassword] = useState(""); const [firstNameKontributor, setFirstNameKontributor] = useState(""); const [lastNameKontributor, setLastNameKontributor] = useState(""); const [whatsappKontributor, setWhatsappKontributor] = useState(""); const [namaPerusahaan, setNamaPerusahaan] = useState(""); const [kategoriPerusahaan, setKategoriPerusahaan] = useState(""); const [kontributorPassword, setKontributorPassword] = useState(""); const [confirmKontributorPassword, setConfirmKontributorPassword] = useState(""); const handleSendOtp = (e: React.FormEvent) => { e.preventDefault(); // Kirim OTP ke email setStep("otp"); }; const handleVerifyOtp = (e: React.FormEvent) => { e.preventDefault(); const code = otp.join(""); // Verifikasi kode OTP console.log("Kode OTP:", code); }; const handleOtpChange = (index: number, value: string) => { if (!/^[0-9]?$/.test(value)) return; const newOtp = [...otp]; newOtp[index] = value; setOtp(newOtp); // Fokus otomatis ke input selanjutnya const nextInput = document.getElementById(`otp-${index + 1}`); if (value && nextInput) nextInput.focus(); }; return (
{/* Left Side - Logo Section */}
Mikul News Logo

Portal NetIdhub

Platform beyond classic

{/* Decorative elements */}
{/* Right Side - Login Form */}
netidhub Logo

MENYATUKAN INDONESIA

{step === "login" ? (
{/* Radio Buttons */} setRole(val)} >
{/* Jurnalis: Select Keanggotaan */} {role === "jurnalis" && (
{/* Nomor Sertifikasi */} setCertNumber(e.target.value)} />
)} {/* Kontributor: Form Fields */} {role === "kontributor" && (
setFirstNameKontributor(e.target.value)} /> setLastNameKontributor(e.target.value)} />
setEmail(e.target.value)} /> setWhatsappKontributor(e.target.value)} /> setNamaPerusahaan(e.target.value)} />
setKontributorPassword(e.target.value)} className="pr-10" />
setConfirmKontributorPassword(e.target.value)} className="pr-10" />
)} {/* Tenant: Form Fields */} {role === "tenant" && (
setFirstName(e.target.value)} /> setLastName(e.target.value)} />
setEmail(e.target.value)} /> setWhatsapp(e.target.value)} /> setNamaTenant(e.target.value)} />
setTenantPassword(e.target.value)} className="pr-10" />
setConfirmTenantPassword(e.target.value)} className="pr-10" />
)} {/* Email Field (Selalu Ada, tapi posisi bergantung role) */} {role !== "tenant" && role !== "kontributor" && ( setEmail(e.target.value)} /> )} {/* Note */}

Dengan mendaftar, saya telah menyetujui{" "} Syarat dan Ketentuan {" "} serta{" "} Kebijakan Privasi

{/* Submit */} {/* Link Login */}

Sudah punya akun?{" "} Login

) : (

Masukkan Kode OTP

Silahkan cek inbox atau kotak spam pada email Anda.

{otp.map((value, index) => ( handleOtpChange(index, e.target.value)} className="w-10 h-12 text-center border border-gray-300 rounded-md text-lg focus:outline-none focus:ring-2 focus:ring-[#B89445]" /> ))}

Kirim Ulang OTP

)}
); }