Initial commit - Lost and Found Revisi
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
// assets/js/pages/auth/useRegisterHandlers.js
|
||||
const useRegisterHandlers = (state) => {
|
||||
const { setErrors, setLoading, setToast } = state;
|
||||
|
||||
const showToast = (message, type = "info") => {
|
||||
setToast({ message, type });
|
||||
};
|
||||
|
||||
const handleSubmit = async (e, formData) => {
|
||||
e.preventDefault();
|
||||
setErrors({});
|
||||
|
||||
let newErrors = {};
|
||||
|
||||
if (formData.name.length < 3) {
|
||||
newErrors.name = "Nama minimal 3 karakter";
|
||||
}
|
||||
if (!Helpers.validateEmail(formData.email)) {
|
||||
newErrors.email = "Email tidak valid";
|
||||
}
|
||||
if (formData.nrp.length < 10) {
|
||||
newErrors.nrp = "NRP minimal 10 digit";
|
||||
}
|
||||
if (!Helpers.validatePhone(formData.phone)) {
|
||||
newErrors.phone = "Nomor tidak valid";
|
||||
}
|
||||
if (formData.password.length < 8) {
|
||||
newErrors.password = "Password minimal 8 karakter";
|
||||
}
|
||||
if (formData.password !== formData.confirmPassword) {
|
||||
newErrors.confirmPassword = "Password tidak cocok";
|
||||
}
|
||||
|
||||
if (Object.keys(newErrors).length > 0) {
|
||||
setErrors(newErrors);
|
||||
return;
|
||||
}
|
||||
|
||||
setLoading(true);
|
||||
|
||||
try {
|
||||
await ApiUtils.post(CONFIG.API_ENDPOINTS.REGISTER, {
|
||||
name: formData.name,
|
||||
email: formData.email,
|
||||
nrp: formData.nrp,
|
||||
phone: formData.phone,
|
||||
password: formData.password,
|
||||
});
|
||||
|
||||
showToast("Registrasi berhasil! Mengalihkan ke login...", "success");
|
||||
|
||||
setTimeout(() => {
|
||||
window.location.href = "/login";
|
||||
}, 2000);
|
||||
} catch (error) {
|
||||
showToast(error.message || "Registrasi gagal!", "error");
|
||||
} finally {
|
||||
setLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
return { handleSubmit };
|
||||
};
|
||||
Reference in New Issue
Block a user