diff --git a/packages/common/business_components/src/ui/sdmInsertForm/form.tsx b/packages/common/business_components/src/ui/sdmInsertForm/form.tsx index c5c9ef809..9da949bee 100644 --- a/packages/common/business_components/src/ui/sdmInsertForm/form.tsx +++ b/packages/common/business_components/src/ui/sdmInsertForm/form.tsx @@ -4,7 +4,6 @@ import React, { useCallback, useEffect, useState } from "react"; import type { ControllerRenderProps, UseFormReturn } from "react-hook-form"; import { FormField } from "../form"; import { FormUi } from "../form_ui"; -import { SelectBox } from "../select"; import { SdmSearchForm } from "./sdmNameBox"; import { SearchAddressModal } from "../search_address/SearchAddressModal"; @@ -80,6 +79,11 @@ type FieldComponent = ( field: ControllerRenderProps, ) => React.ReactElement; +const getReadonlyInputClassName = (isReadonly?: boolean) => + isReadonly + ? "!text-xl text-gray-600 bg-gray-100 cursor-default" + : "!text-xl text-gray-600"; + export function SdmRegForm({ form, onCheckboxChange, @@ -92,11 +96,6 @@ export function SdmRegForm({ readOnly, openNetwork, }: SdmRegFormProps) { - const [sidoValue, setSidoValue] = useState(""); - const [sigunValue, setSigunValue] = useState(""); - const [filteredSigunData, setFilteredSigunData] = useState([ - { text: "전체", val: "0" }, - ]); const [isBznmTotNoDisabled, setIsBznmTotNoDisabled] = useState(true); const [orgBznmNo, setOrgBznmNo] = useState(""); const [updateCoNm, setUpdateNm] = useState(""); @@ -134,46 +133,12 @@ export function SdmRegForm({ const initializeSigunData = useCallback( (sidoCd: string) => { if (sidoCd === "0") { - setSigunValue("0"); - setFilteredSigunData([{ text: "전체", val: "0" }]); + form.setValue("sggCd", ""); } else { - const newFilteredData = [ - { text: "전체", val: "0" }, - ...selectSigunData.filter( - (item: SelectDataType) => item.val.substring(0, 2) === sidoCd, - ), - ]; - setSigunValue("0"); - setFilteredSigunData(newFilteredData); + form.setValue("sggCd", ""); } }, - [selectSigunData], - ); - - const onSelectValue = useCallback( - ( - val: string, - type: string, - field: ControllerRenderProps | undefined, - ) => { - if (!updateList?.dmdInfoId) - switch (type) { - case "ctpvCd": - initializeSigunData(val); - setSidoValue(val); - field?.onChange(val); - form.setValue("dmdInfoId", ""); - form.setValue("bznmTotNo", ""); - break; - case "sggCd": - setSigunValue(val); - field?.onChange(val); - form.setValue("dmdInfoId", ""); - form.setValue("bznmTotNo", ""); - break; - } - }, - [initializeSigunData, form, updateList], + [form], ); const handleCheckboxChange = useCallback( @@ -207,13 +172,11 @@ export function SdmRegForm({ // 수요처 불러온 후 사업자번호를 바꿀경우를 대비함 setOrgBznmNo(rtnCompData?.dmdInfoId); const sidoCd = rtnCompData?.ctpvCd.trim() || ""; - setSidoValue(sidoCd); form.setValue("ctpvCd", sidoCd); initializeSigunData(sidoCd); setTimeout(() => { const sigunCd = rtnCompData?.sggCd.trim() || ""; - setSigunValue(sigunCd); form.setValue("sggCd", sigunCd); }, 100); @@ -258,7 +221,6 @@ export function SdmRegForm({ ); if (!matchedSido) return; - setSidoValue(matchedSido.val); form.setValue("ctpvCd", matchedSido.val, { shouldValidate: true }); initializeSigunData(matchedSido.val); @@ -279,7 +241,6 @@ export function SdmRegForm({ if (!matchedSigun) return; - setSigunValue(matchedSigun.val); form.setValue("sggCd", matchedSigun.val, { shouldValidate: true }); }, [form, initializeSigunData, selectSidoData, selectSigunData], @@ -364,68 +325,6 @@ export function SdmRegForm({ label: string; component: FieldComponent; }> = [ - { - name: "ctpvCd", - label: "시도", - component: (field) => - updateList?.dmdInfoId ? ( - { - field.onChange(e.target.value); - }} - value={ - selectSidoData.find((item) => item.val === field.value?.trim()) - ?.text ?? "" - } - readOnly={!!updateList?.dmdInfoId} - /> - ) : ( - - onSelectValue(val.toString(), "ctpvCd", field ?? "") - } - className="" - value={sidoValue} - /> - ), - }, - { - name: "sggCd", - label: "시군구", - component: (field) => - updateList?.dmdInfoId ? ( - { - field.onChange(e.target.value); - }} - value={ - selectSigunData.find((item) => item.val === field.value?.trim()) - ?.text ?? "" - } - readOnly={!!updateList?.dmdInfoId} - /> - ) : ( - - onSelectValue(val.toString(), "sggCd", field) - } - className="" - value={sigunValue} - /> - ), - }, { name: "dmdCoNm", label: "회사명", @@ -449,7 +348,7 @@ export function SdmRegForm({ bznNoChange(e, "dmdInfoId", field)} value={formatBusinessNumber(field.value ?? "")} readOnly={!!updateList?.dmdInfoId} @@ -468,7 +367,7 @@ export function SdmRegForm({ bznNoChange(e, "bznmTotNo", field)} // {...field} @@ -488,7 +387,7 @@ export function SdmRegForm({ {/* 우편번호 */} { const value = e.target.value; @@ -521,13 +420,51 @@ export function SdmRegForm({ ), }, + { + name: "ctpvCd", + label: "시도", + component: (field) => ( + { + field.onChange(e.target.value); + }} + value={ + selectSidoData.find((item) => item.val === field.value?.trim()) + ?.text ?? "" + } + readOnly={true} + /> + ), + }, + { + name: "sggCd", + label: "시군구", + component: (field) => ( + { + field.onChange(e.target.value); + }} + value={ + selectSigunData.find((item) => item.val === field.value?.trim()) + ?.text ?? "" + } + readOnly={true} + /> + ), + }, { name: "telno", label: "전화번호", @@ -538,7 +475,7 @@ export function SdmRegForm({ { @@ -557,7 +494,7 @@ export function SdmRegForm({