From cb5235864e89df111cf2df41101982bb8592f03c Mon Sep 17 00:00:00 2001 From: YangJinSoo94 Date: Mon, 26 May 2025 16:38:22 +0900 Subject: [PATCH] =?UTF-8?q?=EC=B4=9D=EC=82=AC=EC=97=85=EC=9E=90=EB=93=B1?= =?UTF-8?q?=EB=A1=9D=EB=B2=88=ED=98=B8=20=EC=B2=B4=ED=81=AC=EB=B0=95?= =?UTF-8?q?=EC=8A=A4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/ui/form_ui/index.tsx | 65 ++++++++++++++----- 1 file changed, 50 insertions(+), 15 deletions(-) diff --git a/packages/common/business_components/src/ui/form_ui/index.tsx b/packages/common/business_components/src/ui/form_ui/index.tsx index bd9930c3c..8fab0118c 100644 --- a/packages/common/business_components/src/ui/form_ui/index.tsx +++ b/packages/common/business_components/src/ui/form_ui/index.tsx @@ -1,19 +1,54 @@ -import React from "react"; +import React, { useCallback, useState } from "react"; import { FormControl, FormItem, FormLabel, FormMessage } from "../form"; +import { Checkbox } from "@common/components/ui"; + +interface FormUiProps extends React.HTMLAttributes { + label?: string; + onCheckboxChange?: (checked: boolean) => void; + isDisabled?: boolean; +} + +interface FormElementProps extends React.HTMLAttributes { + disabled?: boolean; +} + +const FormUi = React.forwardRef( + ({ children, label, onCheckboxChange, isDisabled }, ref) => { + const [isChecked, setIsChecked] = useState(false); + + const handleCheckboxChange = useCallback((checked: boolean) => { + setIsChecked(checked); + onCheckboxChange?.(checked); + }, [onCheckboxChange]); -const FormUi = React.forwardRef< - HTMLDivElement, - React.HTMLAttributes & {label:string|undefined} ->(({children, label},ref)=>{ return ( - - {label?{label}:<>} - - {children} - - - - ) -}) + + {label && {label}} + {label === '종사업자등록번호' && ( +
+
+ + +
+
+ )} + + {React.isValidElement(children) && isDisabled + ? React.cloneElement(children, { + disabled: true, + ...(children.props as FormElementProps) + }) + : children} + + +
+ ); + } +); + FormUi.displayName = 'FormUi'; -export { FormUi }; +export { FormUi }; \ No newline at end of file