수요처명 입력오류 수정

This commit is contained in:
Your Name
2025-07-23 13:48:38 +09:00
parent 142929510f
commit c4750d9652
4 changed files with 23 additions and 11 deletions
@@ -13,7 +13,7 @@ import { Toaster } from "react-hot-toast";
import * as z from "zod";
import SdmLogin from "../sdmLogin/page";
const createFormSchema = () => z.object({
const sdmInfoFormSchema = z.object({
sdmNm: z.string()
.min(1, "수요처를 선택해주세요"),
demandYmd: z.date().optional(),
@@ -67,14 +67,14 @@ const createFormSchema = () => z.object({
candidateTitle: z.string().optional(),
});
export type FormData = z.infer<ReturnType<typeof createFormSchema>>;
export type FormData = z.infer<typeof sdmInfoFormSchema>;
function SdmInfoInsertContent() {
const searchParams = useSearchParams();
const {insertSdmInfoData, Sdm} = useDmStore((state) => state);
const {successLogin} = Sdm;
const [ismoneyDisabled, setIsmoneyDisabled] = useState(false);
const formSchema = createFormSchema();
const formSchema = sdmInfoFormSchema;
const [isLogin, setIsLogin] = useState(false);
const [facilityName, setFacilityName] = useState<string>('');
@@ -21,6 +21,7 @@ export default function MyForm() {
useEffect(() => {
if (successNextPage && formDataRef.current) {
const data = formDataRef.current;
console.log(data);
const queryParams = new URLSearchParams({
dmdCoNm: data.dmdCoNm || '',
ctpvCd: data.ctpvCd || '',
@@ -54,6 +54,14 @@ export function SdmInfoRegForm({ form, onCheckboxChange, facilityName }: SdmInfo
}
}, [facilityName, form]);
useEffect(() => {
if (searchParams.get('dmdCoNm')) {
form.setValue('sdmNm', searchParams.get('dmdCoNm') || '');
setSdmNmValue(searchParams.get('dmdCoNm') || '');
setKey(prev => prev + 1);
}
}, [searchParams, form]);
const searchCandidate = (e: React.MouseEvent) => {
e.preventDefault();
e.stopPropagation();
@@ -4,14 +4,16 @@ import { BZNM_TOT_NO, FormField, FormUi } from "@common/business_components";
import { Button, Input } from "@common/components";
import { zodResolver } from "@hookform/resolvers/zod";
import { sha512 } from 'js-sha512';
import { useEffect, useState } from "react";
import { useEffect, useState, useMemo } from "react";
import { FormProvider, useForm, type ControllerRenderProps } from "react-hook-form";
import * as z from "zod";
export function SdmLoginForm() {
type FormData = z.infer<ReturnType<typeof createFormSchema>>;
type FieldComponent = (field: ControllerRenderProps<FormData, keyof FormData>) => JSX.Element;
const createFormSchema = () => z.object({
const { actionLogin, initializeCommonData } = useDmStore((state) => state);
const [isBznmTotNoDisabled, setIsBznmTotNoDisabled] = useState(false);
// 스키마를 useMemo로 최적화
const sdmLoginFormSchema = useMemo(() => z.object({
dmdInfoId: z.string()
.min(1, "사업자등록번호를 입력해주세요")
.regex(/^\d{10}$/, "사업자등록번호는 10자리 숫자만 입력 가능합니다"),
@@ -24,11 +26,12 @@ export function SdmLoginForm() {
.max(16, "비밀번호는 16자 이내로 입력해주세요"),
rgtr: z.string().optional(),
dmdAplyPswd: z.string().optional(),
});
}), [isBznmTotNoDisabled]);
const { actionLogin, initializeCommonData } = useDmStore((state) => state);
const [isBznmTotNoDisabled, setIsBznmTotNoDisabled] = useState(false);
const formSchema = createFormSchema();
type FormData = z.infer<typeof sdmLoginFormSchema>;
type FieldComponent = (field: ControllerRenderProps<FormData, keyof FormData>) => JSX.Element;
const formSchema = sdmLoginFormSchema;
useEffect(() => {
initializeCommonData();