// assets/js/pages/auth/RegisterApp.js const { useState, useEffect } = React; const RegisterApp = () => { const [formData, setFormData] = useState({ name: "", email: "", nrp: "", phone: "", password: "", confirmPassword: "", }); const [loading, setLoading] = useState(false); const [toast, setToast] = useState(null); const [errors, setErrors] = useState({}); const [passwordStrength, setPasswordStrength] = useState(""); const state = { setErrors, setLoading, setToast }; const handlers = useRegisterHandlers(state); useEffect(() => { const user = AuthUtils.getCurrentUser(); if (AuthUtils.isAuthenticated() && user?.role) { AuthUtils.redirectBasedOnRole(user); } }, []); const handleChange = (e) => { const { name, value } = e.target; setFormData((prev) => ({ ...prev, [name]: value })); if (name === "password") { setPasswordStrength(Helpers.checkPasswordStrength(value)); } if (errors[name]) { setErrors((prev) => ({ ...prev, [name]: "" })); } }; const getPasswordStrengthColor = () => { if (passwordStrength === "weak") return "text-red-400"; if (passwordStrength === "medium") return "text-yellow-400"; if (passwordStrength === "strong") return "text-green-400"; return ""; }; const getPasswordStrengthText = () => { if (passwordStrength === "weak") return "⚠️ Password lemah"; if (passwordStrength === "medium") return "✓ Password sedang"; if (passwordStrength === "strong") return "✓ Password kuat"; return ""; }; return (
{/* Header */}

🔍 Register

Buat akun Lost & Found System

{/* Body */}
handlers.handleSubmit(e, formData)} className="space-y-5" > {/* Name */}
{errors.name && (

{errors.name}

)}
{/* Email */}
{errors.email && (

{errors.email}

)}
{/* NRP & Phone */}
{errors.nrp && (

{errors.nrp}

)}
{errors.phone && (

{errors.phone}

)}
{/* Password */}
{passwordStrength && (

{getPasswordStrengthText()}

)} {errors.password && (

{errors.password}

)}
{/* Confirm Password */}
{errors.confirmPassword && (

{errors.confirmPassword}

)}
{/* Submit Button */}
{/* Divider */}
atau
{/* Login Link */}

Sudah punya akun?{" "} Login disini

{/* Back to Home */}
← Kembali ke Beranda
{/* Toast */} {toast && ( setToast(null)} /> )}
); }; ReactDOM.render(, document.getElementById("root"));