1- import { useState } from "react" ;
1+ import { useEffect , useState } from "react" ;
22
33import styles from "@/components/SelectTag/SelectTag.module.scss" ;
44import TagSheet from "@/components/SelectTag/TagSheet/TagSheet" ;
@@ -13,48 +13,89 @@ import { useCreateReviewStore } from "@/store/useReviewStore";
1313const SelectTag = ( ) => {
1414 const { navigateToSelectStyle } = useRoute ( ) ;
1515
16- const { setHashTag } = useCreateReviewStore ( ) ;
16+ const { createReviewData, setHashTag, setTagList } = useCreateReviewStore ( ) ;
17+
18+ const { tagList, hashTag } = createReviewData ;
1719
18- const [ selectedTagList , setSelectedTagList ] = useState < string [ ] > ( [ ] ) ;
1920 const [ isBottomSheetOpen , setIsBottomSheetOpen ] = useState ( false ) ;
20- const [ tagList , setTagList ] = useState < string [ ] > ( [
21- "음식이 맛있어요" ,
22- "양이 많아요" ,
23- "가성비가 좋아요" ,
24- "메뉴 구성이 알차요" ,
25- "매장이 넓어요" ,
26- "단체모임 하기 좋아요" ,
27- "뷰가 좋아요" ,
28- "아늑해요" ,
29- "분위기가 좋아요" ,
30- "친절해요" ,
31- "매장이 청결해요" ,
32- ] ) ;
33-
34- const handleTagClick = ( e : React . MouseEvent < HTMLDivElement , MouseEvent > ) => {
35- const tag = e . currentTarget . textContent || "" ;
36-
37- setSelectedTagList ( ( prevSelectedTags ) =>
38- prevSelectedTags . includes ( tag )
39- ? prevSelectedTags . filter ( ( selectedTag ) => selectedTag !== tag )
40- : [ ...prevSelectedTags , tag ] ,
41- ) ;
21+
22+ useEffect ( ( ) => {
23+ setHashTag ( hashTag ) ;
24+ } , [ hashTag , setHashTag ] ) ;
25+
26+ const handleTagClick = ( tag : string ) => {
27+ const newSelectedTags = hashTag . includes ( tag )
28+ ? hashTag . filter ( ( selectedTag ) => selectedTag !== tag )
29+ : [ ...hashTag , tag ] ;
30+
31+ setHashTag ( newSelectedTags ) ;
4232 } ;
4333
4434 const handleTagAdd = ( newTag : string ) => {
4535 setIsBottomSheetOpen ( false ) ;
46- if ( ! tagList . includes ( newTag ) ) {
47- setTagList ( ( prevTagList : string [ ] ) => [ ...prevTagList , newTag ] ) ;
48- setSelectedTagList ( ( prevSelectedTags ) => [ ...prevSelectedTags , newTag ] ) ;
49- }
36+ setTagList ( [ ...tagList , newTag ] ) ;
37+ setHashTag ( [ ...hashTag , newTag ] ) ;
5038 } ;
5139
40+ // const [selectedTagList, setSelectedTagList] = useState<string[]>(createReviewData.hashTag);
41+
42+ // const [tagList, setTagList] = useState<string[]>([
43+ // "음식이 맛있어요",
44+ // "양이 많아요",
45+ // "가성비가 좋아요",
46+ // "메뉴 구성이 알차요",
47+ // "매장이 넓어요",
48+ // "단체모임 하기 좋아요",
49+ // "뷰가 좋아요",
50+ // "아늑해요",
51+ // "분위기가 좋아요",
52+ // "친절해요",
53+ // "매장이 청결해요",
54+ // ]);
55+
56+ // useEffect(() => {
57+ // setSelectedTagList(createReviewData.hashTag);
58+ // }, [createReviewData.hashTag]);
59+
60+ // const handleTagClick = (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {
61+ // const tag = e.currentTarget.textContent || "";
62+
63+ // setSelectedTagList((prevSelectedTags) => {
64+ // const newSelectedTags = prevSelectedTags.includes(tag)
65+ // ? prevSelectedTags.filter((selectedTag) => selectedTag !== tag)
66+ // : [...prevSelectedTags, tag];
67+
68+ // setHashTag(newSelectedTags);
69+ // return newSelectedTags;
70+ // });
71+ // };
72+
73+ // const handleTagAdd = (newTag: string) => {
74+ // setIsBottomSheetOpen(false);
75+
76+ // setTagList((prevTagList) => {
77+ // if (!prevTagList.includes(newTag)) {
78+ // return [...prevTagList, newTag];
79+ // }
80+ // return prevTagList;
81+ // });
82+
83+ // setSelectedTagList((prevSelectedTags) => {
84+ // if (!prevSelectedTags.includes(newTag)) {
85+ // const newSelectedTags = [...prevSelectedTags, newTag];
86+ // setHashTag(newSelectedTags);
87+ // return newSelectedTags;
88+ // }
89+ // return prevSelectedTags;
90+ // });
91+ // };
92+
5293 const handleSheetClose = ( ) => {
5394 setIsBottomSheetOpen ( false ) ;
5495 } ;
5596
5697 const handleNextClick = ( ) => {
57- setHashTag ( selectedTagList ) ;
98+ // setHashTag(selectedTagList);
5899 navigateToSelectStyle ( ) ;
59100 } ;
60101
@@ -74,8 +115,8 @@ const SelectTag = () => {
74115 < Tag
75116 text = { tag }
76117 key = { tag }
77- onClick = { handleTagClick }
78- isSelect = { selectedTagList . includes ( tag ) }
118+ onClick = { ( ) => handleTagClick ( tag ) }
119+ isSelect = { hashTag . includes ( tag ) }
79120 />
80121 ) ) }
81122 < Tag variant = "add" onClick = { ( ) => setIsBottomSheetOpen ( true ) } />
0 commit comments