diff --git a/apps/dm_new/components/LoginModal.tsx b/apps/dm_new/components/LoginModal.tsx index fb42e51f5..833eda7d0 100644 --- a/apps/dm_new/components/LoginModal.tsx +++ b/apps/dm_new/components/LoginModal.tsx @@ -2,6 +2,10 @@ import { useEffect, useId, useState } from "react"; import { useRouter } from "next/navigation"; +import { useDmStore } from "@/app/store"; +import { sha512 } from 'js-sha512'; +import toast from "react-hot-toast"; +import { Button, Input } from "@common/components"; type LoginModalProps = { open: boolean; @@ -28,8 +32,8 @@ export default function LoginModal({ open, onClose, onSuccess }: LoginModalProps const titleId = useId(); const router = useRouter(); - const [bizNo, setBizNo] = useState(""); - const [workerNo, setWorkerNo] = useState(""); + const [bizNo, setBizNo] = useState(""); // 사업자번호 + const [workerNo, setWorkerNo] = useState(""); // 종사업자번호 const [noWorker, setNoWorker] = useState(true); // 종사업자번호 해당없음 checked const [pw, setPw] = useState(""); @@ -41,13 +45,13 @@ export default function LoginModal({ open, onClose, onSuccess }: LoginModalProps useEffect(() => { if (!open) return; const onKeyDown = (e: KeyboardEvent) => { - if (e.key === "Escape") onClose(); + if (e.key === "Escape") onClose(); // ESC 키로 모달 닫기 }; window.addEventListener("keydown", onKeyDown); // 스크롤 잠금 const prev = document.body.style.overflow; - document.body.style.overflow = "hidden"; + document.body.style.overflow = "hidden"; // 모달 오픈 시 배경 스크롤 방지 // 모달 오픈 시 에러/터치 초기화 setErrors({}); @@ -90,6 +94,23 @@ export default function LoginModal({ open, onClose, onSuccess }: LoginModalProps return next; }; + const formatBusinessNumber = (value: string) => { + // 숫자만 추출 + const digitsOnly = value.replace(/\D/g, ""); + + // 10자리까지만 처리 + const limitedDigits = digitsOnly.slice(0, 10); + + // 3-2-5 형식으로 포맷팅 + if (limitedDigits.length <= 3) { + return limitedDigits; + } else if (limitedDigits.length <= 5) { + return `${limitedDigits.slice(0, 3)}-${limitedDigits.slice(3)}`; + } else { + return `${limitedDigits.slice(0, 3)}-${limitedDigits.slice(3, 5)}-${limitedDigits.slice(5)}`; + } + }; + const markTouched = (key: FieldKey) => setTouched((p) => ({ ...p, [key]: true })); @@ -132,6 +153,21 @@ export default function LoginModal({ open, onClose, onSuccess }: LoginModalProps } }; + // const handleLogin = () => { + // const data = form.getValues(); + // const passwordStr = sha512.hex(data.password) + // data.dmdAplyPswd = passwordStr; + // const param = { + // dmdInfoId: data.dmdInfoId + (isBznmTotNoDisabled ? '0000' : data.bznmTotNo), + // dmdAplyPswd: data.dmdAplyPswd, + // } + // actionLogin(param as unknown as DemandCompType); + // }; + + const initPassword = () => { + alert("관리자(031-0000-0000)에게 비밀번호 초기화 요청을 유선으로 하시기 바랍니다."); + } + return (