diff --git a/src/app/(auth)/login/_components/AdminLoginForm/AdminLoginForm.tsx b/src/app/(auth)/login/_components/AdminLoginForm/AdminLoginForm.tsx index ed83192..763d978 100644 --- a/src/app/(auth)/login/_components/AdminLoginForm/AdminLoginForm.tsx +++ b/src/app/(auth)/login/_components/AdminLoginForm/AdminLoginForm.tsx @@ -1,6 +1,7 @@ "use client"; -import { Button, Icon, InputText } from "@/components"; +import { Button, InputText } from "@/components"; +import Logo from "@/assets/logo.svg"; import useAdminLoginForm from "../../_hooks/useAdminLoginForm"; import useLoginReasonToast from "../../_hooks/useLoginReasonToast"; @@ -25,23 +26,31 @@ const LOGIN_INPUTS = [ }, ] as const; +interface AdminLoginFormProps { + /** 로그인 화면으로 보내진 이유(`reason` 쿼리) */ + reason?: string; + /** 로그인 후 돌아갈 경로(`callbackUrl` 쿼리) */ + callbackUrl?: string; +} + /** * 관리자 로그인 폼입니다. * * @remarks * - 상위에서 `FormProvider`로 감싸야 합니다. * - 회원가입과 비밀번호 찾기는 운영 앱에서만 제공하므로 링크를 두지 않습니다. + * - 로고는 첫 화면에 바로 보여야 하므로 `Icon`의 지연 로딩을 거치지 않고 정적으로 가져옵니다. */ -const AdminLoginForm = () => { - const { onSubmitLogin, isPending } = useAdminLoginForm(); - useLoginReasonToast(); +const AdminLoginForm = ({ reason, callbackUrl }: AdminLoginFormProps) => { + const { onSubmitLogin, isPending } = useAdminLoginForm(callbackUrl); + useLoginReasonToast(reason); return (