import { useDmStore } from '@/app/store'; import type { DemandCompType } from '@common/business_components/ui/sdmInsertForm/form'; import React, { useCallback, useEffect, useRef, useState } from 'react'; type thisProps = { label: string | undefined; initValue: string | undefined; setValue : (dmdCoNm?: string) => void; setRtnData : (rtnData: DemandCompType[]) => void; } export default function SearchInputText({label=undefined, initValue=undefined, setValue=()=>{}, setRtnData=()=>{}} :thisProps) { const { getDemandCompList, Sdm } = useDmStore((state) => state); const { demandCompList } = Sdm; const [isOpen, setIsOpen] = useState(false); const [textValue, setTextValue] = useState(initValue || ''); const wrapperRef = useRef(null); const handleInputChange = useCallback((e: React.ChangeEvent) => { const value = e.target.value; setTextValue(value); setValue(value); if (value) { setIsOpen(true); getDemandCompList(value, 20); } else { setIsOpen(false); } }, [getDemandCompList, setValue]); const handleSuggestionClick = useCallback((dmdCoNm: string) => { setTextValue(dmdCoNm); setValue(dmdCoNm); setIsOpen(false); setRtnData(demandCompList); }, [demandCompList, setRtnData, setValue]); useEffect(() => { const handleClickOutside = (event: MouseEvent) => { if (wrapperRef.current && !wrapperRef.current.contains(event.target as Node)) { setIsOpen(false); } }; document.addEventListener('mousedown', handleClickOutside); return () => { document.removeEventListener('mousedown', handleClickOutside); }; }, []); return (
setIsOpen(true)} */ className="w-full h-[3.2rem] !text-xl pl-3 text-gray-600 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500" placeholder={`${label}을(를) 입력하세요`} /> {isOpen && (
{demandCompList && demandCompList.length > 0 ? demandCompList.map((item : DemandCompType, index : number) => (
handleSuggestionClick(item.dmdCoNm)} role="button" tabIndex={0} onKeyDown={(e) => { if (e.key === 'Enter' || e.key === ' ') { handleSuggestionClick(item.dmdCoNm); } }} > {item.dmdInfoId.substring(10,14) !== '0000' ? ( <> 사업자번호 : {item.dmdInfoId.substring(0,10)}  종사업자번호 : {item.dmdInfoId.substring(10,14)}  ) : ( <> 사업자번호 : {item.dmdInfoId.substring(0,10)}  )} {item.dmdCoNm}
)) : (
검색 결과가 없습니다.
)}
)}
) }