import ferinesiaLogo from "@/assets/logos/ferinesia-logo-thin.png"; import { endpoints } from "@/config/host"; import { createAxiosInstance } from "@/functions/axios-instance"; import { useEffect, useState } from "react"; import { useLocation, useSearchParams } from "react-router-dom"; import Cookies from "js-cookie"; import { AxiosError } from "axios"; /** * Copyright: Task Master (https://tailwindflex.com/@task_master) * URL: https://tailwindflex.com/@task_master/login-form-with-social-login-buttons */ export interface InputValidationError { type: string; message: string; } export default function Login() { const [searchParams] = useSearchParams(); const [isLoading, setIsLoading] = useState(false); const [loginToken, setLoginToken] = useState(null); const [terminalID, setTerminalID] = useState(null); const [isSuccessLogin, setIsSuccessLogin] = useState(null); const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const [inputValidationMsg, setInputValidationMsg] = useState([]); const doLogin = async () => { let validationErrors = [] if(username.length <= 0){ validationErrors.push({type: "username", message: "Username tidak boleh kosong"}) } if(password.length <= 0){ validationErrors.push({type: "password", message: "Password tidak boleh kosong"}) } setInputValidationMsg(validationErrors) if(validationErrors.length > 0) return setIsLoading(true) try{ const {data} = await createAxiosInstance({}).post(endpoints.login, { username, password, token: loginToken }); setIsSuccessLogin(true); return } catch(err){ if(err instanceof AxiosError){ if(err.response?.data?.meta?.is_error){ validationErrors.push({type: "username", message: err.response?.data?.meta?.message}) } } else validationErrors.push({type: "username", message: "Terjadi kesalahan saat memproses data"}) } finally{ setInputValidationMsg(validationErrors) setIsLoading(false) } } useEffect(() => { setLoginToken(searchParams.get("state") ?? null); setTerminalID(searchParams.get("terminal_id") ?? null); }); return (

ferinesia .com

{ (isSuccessLogin == null || !isSuccessLogin) && <>
{/* { inputValidationMsg.find(x => x.type == "username") && {inputValidationMsg.find(x => x.type == "username")!.message} } */}
setUsername(e.currentTarget.value)} /> { inputValidationMsg.find(x => x.type == "username") && {inputValidationMsg.find(x => x.type == "username")!.message} }
setPassword(e.currentTarget.value)} /> { inputValidationMsg.find(x => x.type == "password") && {inputValidationMsg.find(x => x.type == "password")!.message} }
{terminalID != null && loginToken != null && ( )} {(terminalID == null || loginToken == null) && Terminal ID dan Token Akses tidak valid.}
} { isSuccessLogin &&

Sukses

Berhasil melakukan login untuk penampil jadwal. Anda dapat menutup halaman ini.
}
); }