+
+
+ {React.cloneElement(component(field), {
+ id: inputId,
+ "aria-required": isRequired,
+ "aria-invalid": !!error,
+ "aria-describedby": error ? errorId : undefined
+ })}
+
+ {error?.message && (
+
+ {error.message}
+
+ )}
+
+ )}
+ />
+ );
+ })}
>
);
}
\ No newline at end of file
diff --git a/packages/common/business_components/src/ui/sdmInsertForm/index.tsx b/packages/common/business_components/src/ui/sdmInsertForm/index.tsx
index 4219602e6..c564b63dd 100644
--- a/packages/common/business_components/src/ui/sdmInsertForm/index.tsx
+++ b/packages/common/business_components/src/ui/sdmInsertForm/index.tsx
@@ -47,7 +47,17 @@ const createFormSchema = (isBznmTotNoDisabled: boolean, isDuplicate: boolean ,up
? z.string().optional() // 패스워드는 선택 사항이며 길이 제한 없음
: z.string().optional()
.refine((val) => !val || (val.length >= 8 && val.length <= 16), "패스워드는 8자 이상 16자 이내로 입력해주세요"),
-
+ dmdAplyPswdConfirm: z.string()
+ .min(1, "패스워드확인을 입력해주세요"),
+}).refine((data) => {
+ // 패스워드 확인 검증
+ if (data.dmdAplyPswd && data.dmdAplyPswdConfirm) {
+ return data.dmdAplyPswd === data.dmdAplyPswdConfirm;
+ }
+ return true;
+}, {
+ message: "패스워드가 일치하지 않습니다",
+ path: ["dmdAplyPswdConfirm"], // 에러를 패스워드 확인 필드에 표시
});
type FormSchema = z.infer