import { useState } from "react"; import { useLogin } from "../../features/auth/api/auth"; import axios from "axios"; import Input from "@/components/forms/Input"; import Alert from "@/components/feedback/Alert"; import Card from "@/components/data_display/Card/Card"; import Button from "@/components/actions/Button"; const LoginPage = () => { const [errors, setErrors] = useState>({}); const { ...login } = useLogin({ onError: (error) => { setErrors(error) } }); const [formData, setFormData] = useState({ username: "", password: "", }); const handleChange = (e: React.ChangeEvent) => { const { name, value } = e.target; setFormData((prev) => ({ ...prev, [name]: value, })); // Hapus error untuk field yang sedang diubah if (errors[name]) { setErrors((prev) => { const newErrors = { ...prev }; delete newErrors[name]; return newErrors; }); } }; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); try { await login.mutateAsync(formData); } catch (error: unknown) { if (axios.isAxiosError(error) && error.response?.status === 400) { const apiErrors = error.response.data.status.errors; setErrors(apiErrors || {}); } } }; return (

Login

{errors.general && ( } > {errors.general} )}
{errors.username && ( )}
{errors.password && ( )}
); }; export default LoginPage;