@@ -24,6 +24,19 @@ struct TagView: View {
24
24
} else {
25
25
TagLEmptyView ( )
26
26
}
27
+
28
+ Spacer ( )
29
+
30
+ Button ( action: {
31
+ withAnimation {
32
+ tagViewModel. isBtnTapped. toggle ( )
33
+ }
34
+ } , label: {
35
+ Image ( systemName: tagViewModel. isBtnTapped ? " chevron.down " : " chevron.right " )
36
+ . font ( . system( size: 16 ) )
37
+ . foregroundStyle ( . gray600)
38
+ } )
39
+ . frame ( alignment: . trailing)
27
40
}
28
41
. padding ( . horizontal, 20 )
29
42
. padding ( . vertical, 15 )
@@ -33,51 +46,52 @@ struct TagView: View {
33
46
. fill ( . gray100)
34
47
. stroke ( Color . gray400, lineWidth: 1 )
35
48
)
36
-
37
- VStack {
38
- Group {
39
- if tagViewModel. isTagExist {
40
- TagListView ( selectedTags: $tagViewModel. selectedTags, toggleTag: tagViewModel. tagTapped)
41
- } else {
42
- Text ( " 아직 태그를 만들지 않았어요 " )
43
- . reazyFont ( . text1)
44
- . foregroundStyle ( . gray550)
49
+ if tagViewModel. isBtnTapped {
50
+ VStack {
51
+ Group {
52
+ if tagViewModel. isTagExist {
53
+ TagListView ( selectedTags: $tagViewModel. selectedTags, toggleTag: tagViewModel. tagTapped)
54
+ } else {
55
+ Text ( " 아직 태그를 만들지 않았어요 " )
56
+ . reazyFont ( . text1)
57
+ . foregroundStyle ( . gray550)
58
+ }
45
59
}
46
- }
47
- . frame ( minHeight: geometry. size. height * 0.35 )
48
-
49
- // 편집 버튼
50
- HStack ( spacing: 0 ) {
51
- Spacer ( )
52
- if tagViewModel. isEditMode {
53
- Button {
54
- withAnimation {
55
- tagViewModel. isEditMode = false
60
+ . frame ( minHeight: geometry. size. height * 0.35 )
61
+
62
+ // 편집 버튼
63
+ HStack ( spacing: 0 ) {
64
+ Spacer ( )
65
+ if tagViewModel. isEditMode {
66
+ Button {
67
+ withAnimation {
68
+ tagViewModel. isEditMode = false
69
+ }
70
+ } label: {
71
+ Text ( " 완료 " )
72
+ . reazyFont ( . button1)
73
+ . foregroundColor ( . primary1)
74
+ . padding ( . trailing, 24 )
75
+ . padding ( . bottom, 20 )
56
76
}
57
- } label: {
58
- Text ( " 완료 " )
59
- . reazyFont ( . button1)
60
- . foregroundColor ( . primary1)
61
- . padding ( . trailing, 24 )
62
- . padding ( . bottom, 20 )
77
+ } else {
78
+ EllipsisView ( ellipsisAction: {
79
+ withAnimation {
80
+ tagViewModel. popover. toggle ( )
81
+ }
82
+ } )
83
+ . matchedGeometryEffect ( id: " popover " ,
84
+ in: nsPopover,
85
+ anchor: . topTrailing)
63
86
}
64
- } else {
65
- EllipsisView ( ellipsisAction: {
66
- withAnimation {
67
- tagViewModel. popover. toggle ( )
68
- }
69
- } )
70
- . matchedGeometryEffect ( id: " popover " ,
71
- in: nsPopover,
72
- anchor: . topTrailing)
73
87
}
74
88
}
89
+ . frame ( maxWidth: . infinity, maxHeight: geometry. size. height * 0.4 )
90
+ . background (
91
+ RoundedRectangle ( cornerRadius: 12 )
92
+ . fill ( . gray200)
93
+ )
75
94
}
76
- . frame ( maxWidth: . infinity, maxHeight: geometry. size. height * 0.4 )
77
- . background (
78
- RoundedRectangle ( cornerRadius: 12 )
79
- . fill ( . gray200)
80
- )
81
95
}
82
96
. padding ( [ . top, . horizontal] , 20 )
83
97
}
@@ -102,14 +116,7 @@ struct TagLEmptyView: View {
102
116
Text ( " 태그로 원하는 논문을 찾아보세요 " )
103
117
. reazyFont ( . button1)
104
118
. foregroundStyle ( . gray550)
105
- Spacer ( )
106
- Button ( action: {
107
-
108
- } , label: {
109
- Image ( systemName: " chevron.down " )
110
- . font ( . system( size: 16 ) )
111
- . foregroundStyle ( . gray600)
112
- } )
119
+ // Spacer()
113
120
}
114
121
}
115
122
@@ -125,7 +132,7 @@ struct SelectedTagView: View {
125
132
ForEach ( selectedTags. map { Tag ( name: $0) } , id: \. id) { tag in
126
133
SelectedTagCell ( tag: tag, action: {
127
134
toggleTag ( tag. name)
128
- } )
135
+ } , isBtnTapped : tagViewModel . isBtnTapped )
129
136
}
130
137
}
131
138
}
0 commit comments