fix: 조사 매물 필수값 검증 조건에 공통 코드 추가

This commit is contained in:
Dayoung 2025-08-07 14:08:31 +09:00
parent 7574dffb0b
commit a24b2f338b
2 changed files with 24 additions and 7 deletions

View File

@ -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()

View File

@ -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