From 0c0b1ac9550223fc03c4dbe8c99e3b1a1520e9d0 Mon Sep 17 00:00:00 2001 From: minjeoong Date: Sat, 18 Jan 2025 06:48:13 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20fill=20=EB=8B=A4=20=EC=B1=84=EC=9B=8C?= =?UTF-8?q?=EC=A0=B8=20=EC=9E=88=EB=8A=94=EC=A7=80=20=ED=99=95=EC=9D=B8?= =?UTF-8?q?=ED=95=98=EB=8A=94=20=EC=BD=94=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/community/write/Write.tsx | 32 +++++++++++++++++----------- src/shared/util/checkKeysInParams.ts | 0 2 files changed, 20 insertions(+), 12 deletions(-) create mode 100644 src/shared/util/checkKeysInParams.ts diff --git a/src/page/community/write/Write.tsx b/src/page/community/write/Write.tsx index 4e182d7c..2f1c9b34 100644 --- a/src/page/community/write/Write.tsx +++ b/src/page/community/write/Write.tsx @@ -34,7 +34,6 @@ interface writeProps { title: string; content: string; image: string[]; - tag: string; selectedChips: { breedId: number[]; diseaseIds: number[]; @@ -57,7 +56,6 @@ const Write = () => { category: "", title: "", content: "", - tag: "", image: [], selectedChips: { breedId: [], @@ -65,12 +63,10 @@ const Write = () => { symptomIds: [], }, }); - const [images, setImages] = useState([]); const fileInputRef = useRef(null); const { isDropDownOpen, toggleDropDown, closeDropDown } = useDropDown(); - const { category, selectedChips, setCategory, isOpen, setOpen, toggleChips } = - useFilterStore(); + const { selectedChips, isOpen, setOpen } = useFilterStore(); const TagLabel = [ { @@ -121,13 +117,19 @@ const Write = () => { const handleAddImage = (event: React.ChangeEvent) => { if (event.target.files && event.target.files[0]) { const newImage = URL.createObjectURL(event.target.files[0]); - setImages((prev) => [...prev, newImage]); + setParams((prevParams) => ({ + ...prevParams, + image: [...prevParams.image, newImage], + })); } }; // 이미지 삭제 const handleDeleteImage = (index: number) => { - setImages((prev) => prev.filter((_, i) => i !== index)); // 선택한 이미지 제거 + setParams((prevParams) => ({ + ...prevParams, + image: prevParams.image.filter((_, i) => i !== index), // 선택한 이미지 제거 + })); }; // 이미지 업로드 버튼 클릭 @@ -151,9 +153,14 @@ const Write = () => { symptomIds: selectedChips.symptomIds, }, })); - console.log(params); }, [selectedChips]); + const isAllParamsFilled = + params.category && + params.title && + params.content && + params.selectedChips.breedId.length > 0; + return ( <>
@@ -212,7 +219,7 @@ const Write = () => { className={plusImage} onClick={handleFileUploadClick} /> - {images.map((imageSrc, index) => ( + {params.image.map((imageSrc, index) => ( { {/* 태그 선택 영역 */} {TagLabel.map((tag, index) => ( - + <> 0 ? tag.value.join(", ") : ""} isActive={tag.value.length > 0} onClick={() => setOpen(true)} /> - + ))} @@ -240,7 +248,7 @@ const Write = () => { {/* 바닥 버튼 영역 */}