fix: 조사 매물 필수값 검증 조건에 공통 코드 추가
This commit is contained in:
parent
7574dffb0b
commit
a24b2f338b
@ -97,12 +97,10 @@ export default function ButtonForm({ mode, setMode, data }: ButtonFormProps) {
|
||||
|
||||
/** 저장 로직 */
|
||||
const handleSave = (isTemporary: boolean) => {
|
||||
const emptyField = validateSurveyDetail(data.roof)
|
||||
|
||||
if (isTemporary) {
|
||||
tempSaveProcess()
|
||||
} else {
|
||||
saveProcess(emptyField)
|
||||
saveProcess()
|
||||
}
|
||||
}
|
||||
|
||||
@ -134,7 +132,9 @@ export default function ButtonForm({ mode, setMode, data }: ButtonFormProps) {
|
||||
}
|
||||
|
||||
/** 저장 로직 */
|
||||
const saveProcess = async (emptyField: string | null) => {
|
||||
const saveProcess = async () => {
|
||||
const emptyField = validateSurveyDetail(data.roof)
|
||||
|
||||
if (emptyField?.trim() === '') {
|
||||
showConfirm(CONFIRM_MESSAGE.SAVE_CONFIRM, async () => {
|
||||
await handleSuccessfulSave()
|
||||
|
||||
@ -1,4 +1,11 @@
|
||||
import type { SubmitTargetResponse, SurveyBasicInfo, SurveyDetailRequest, SurveyRegistRequest } from '@/types/Survey'
|
||||
import {
|
||||
radioEtcData,
|
||||
selectBoxOptions,
|
||||
type SubmitTargetResponse,
|
||||
type SurveyBasicInfo,
|
||||
type SurveyDetailRequest,
|
||||
type SurveyRegistRequest,
|
||||
} from '@/types/Survey'
|
||||
import { useMemo } from 'react'
|
||||
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'
|
||||
import { useSurveyFilterStore } from '@/store/surveyFilterStore'
|
||||
@ -380,7 +387,7 @@ export function useSurvey(
|
||||
})
|
||||
|
||||
/**
|
||||
* @description 조사 매물 상세 데이터 유효성 검사
|
||||
* @description 조사 매물 상세 데이터 필수값 검증
|
||||
*
|
||||
* @param {SurveyDetailRequest} surveyDetail 검사할 조사 매물 상세 데이터
|
||||
* @returns {string} 빈 필드 이름 또는 빈 문자열
|
||||
@ -395,15 +402,25 @@ export function useSurvey(
|
||||
}
|
||||
|
||||
const checkRequiredField = (field: string): string => {
|
||||
/** 기타 (직접입력) 항목이 있는 필드 체크 */
|
||||
if (ETC_FIELDS.includes(field as (typeof ETC_FIELDS)[number])) {
|
||||
/** 기타 (직접입력) 항목이 비어있거나 값 선택/입력을 하지 않은 경우 해당 필드 반환 */
|
||||
if (
|
||||
isEmptyValue(surveyDetail[field as keyof SurveyDetailRequest]) &&
|
||||
isEmptyValue(surveyDetail[`${field}Etc` as keyof SurveyDetailRequest])
|
||||
) {
|
||||
return field
|
||||
}
|
||||
/** 직접입력 필드가 기타 선택이 아닌 필드 체크 - 건축연수, 단열재 유무
|
||||
* 건축연수 필드가 기축(O) 선택이고 직접입력 필드가 비어있거나 값 선택/입력을 하지 않은 경우 해당 필드 반환
|
||||
* 단열재 유무 필드가 2(있음) 선택이고 직접입력 필드가 비어있거나 값 선택/입력을 하지 않은 경우 해당 필드 반환
|
||||
*/
|
||||
} else if (SPECIAL_CONDITIONS.includes(field as (typeof SPECIAL_CONDITIONS)[number])) {
|
||||
if (surveyDetail[field as keyof SurveyDetailRequest] === '2' && isEmptyValue(surveyDetail[`${field}Etc` as keyof SurveyDetailRequest])) {
|
||||
if (
|
||||
(surveyDetail.constructionYear === selectBoxOptions.constructionYear[1].code && isEmptyValue(surveyDetail.constructionYearEtc)) ||
|
||||
(surveyDetail.insulationPresence === '2' && isEmptyValue(surveyDetail.insulationPresenceEtc))
|
||||
) {
|
||||
/** 건축연수, 단열재 유무 필드가 비어있거나 값 선택/입력을 하지 않은 경우 해당 필드 반환 */
|
||||
return `${field}Etc`
|
||||
} else if (isEmptyValue(surveyDetail[field as keyof SurveyDetailRequest])) {
|
||||
return field
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user