diff --git a/src/pages/auth/SignIn.jsx b/src/pages/auth/SignIn.jsx index cbac2a3..fa27d98 100644 --- a/src/pages/auth/SignIn.jsx +++ b/src/pages/auth/SignIn.jsx @@ -7,111 +7,155 @@ import sypiu_ggcp from 'assets/sypiu_ggcp.jpg'; import logo from 'assets/freepik/LOGOPIU.png'; const SignIn = () => { - const [captchaSvg, setCaptchaSvg] = useState(''); - const [captchaText, setCaptchaText] = useState(''); - const [loading, setLoading] = useState(false); - const navigate = useNavigate(); + const [captchaSvg, setCaptchaSvg] = useState(''); + const [captchaText, setCaptchaText] = useState(''); + const [loading, setLoading] = useState(false); + const navigate = useNavigate(); - const moveToSignUp = () => { - navigate("/signup"); - }; + const moveToSignUp = () => { + navigate('/signup'); + }; - // ambil captcha - const fetchCaptcha = async () => { - try { - const res = await SendRequest({ method: 'get', prefix: 'auth/generate-captcha', token: false }); - setCaptchaSvg(res.data.svg || ''); - setCaptchaText(res.data.text || ''); - } catch (err) { - console.error('Error fetching captcha:', err); - } - }; + // ambil captcha + const fetchCaptcha = async () => { + try { + const res = await SendRequest({ + method: 'get', + prefix: 'auth/generate-captcha', + token: false, + }); + setCaptchaSvg(res.data.svg || ''); + setCaptchaText(res.data.text || ''); + } catch (err) { + console.error('Error fetching captcha:', err); + } + }; - useEffect(() => { fetchCaptcha(); }, []); - - const handleOnSubmit = async (values) => { - setLoading(true); - try { - const res = await SendRequest({ - method: 'post', - prefix: 'auth/login', - params: { - email: values.email, - password: values.password, - captcha: values.captcha, - captchaText: captchaText, - }, - withCredentials: true - }); - - const user = res?.data?.user || res?.user; - const accessToken = res?.data?.accessToken || res?.tokens?.accessToken; - - if (user && accessToken) { - localStorage.setItem('token', accessToken); - localStorage.setItem('user', JSON.stringify(user)); - - NotifOk({ - icon: 'success', - title: 'Login Berhasil', - message: res?.message || 'Selamat datang!', - }); - - navigate('/dashboard/home'); - } else { - NotifAlert({ - icon: 'error', - title: 'Login Gagal', - message: res?.message || 'Terjadi kesalahan', - }); + useEffect(() => { fetchCaptcha(); - } - } catch (err) { - console.error(err); - NotifAlert({ icon: 'error', title: 'Login Gagal', message: err?.message || 'Terjadi kesalahan' }); - fetchCaptcha(); - } finally { setLoading(false); } - }; + }, []); - return ( - - - - logo - -
-
- - - + const handleOnSubmit = async (values) => { + setLoading(true); + try { + const res = await SendRequest({ + method: 'post', + prefix: 'auth/login', + params: { + email: values.email, + password: values.password, + captcha: values.captcha, + captchaText: captchaText, + }, + withCredentials: true, + }); - - - + const user = res?.data?.user || res?.user; + const accessToken = res?.data?.accessToken || res?.tokens?.accessToken; -
+ if (user && accessToken) { + localStorage.setItem('token', accessToken); + localStorage.setItem('user', JSON.stringify(user)); - - - + NotifOk({ + icon: 'success', + title: 'Login Berhasil', + message: res?.message || 'Selamat datang!', + }); - - - - - - - - - - ); + + + logo + +
+
+ + + + + + + + +
+ + + + + + + + + + + + + + + ); }; export default SignIn;