@@ -45,7 +45,7 @@ public struct ChatPanelFeature: ReducerProtocol {
4545 }
4646
4747 public struct State : Equatable {
48- public var chatTapGroup = ChatTabGroup ( )
48+ public var chatTabGroup = ChatTabGroup ( )
4949 var colorScheme : ColorScheme = . light
5050 var isPanelDisplayed = false
5151 var chatPanelInASeparateWindow = false
@@ -90,7 +90,7 @@ public struct ChatPanelFeature: ReducerProtocol {
9090 }
9191
9292 case . closeActiveTabClicked:
93- if let id = state. chatTapGroup . selectedTabId {
93+ if let id = state. chatTabGroup . selectedTabId {
9494 return . run { send in
9595 await send ( . closeTabButtonClicked( id: id) )
9696 }
@@ -121,95 +121,95 @@ public struct ChatPanelFeature: ReducerProtocol {
121121 }
122122
123123 case let . updateChatTabInfo( chatTabInfo) :
124- let previousSelectedIndex = state. chatTapGroup . tabInfo
125- . firstIndex ( where: { $0. id == state. chatTapGroup . selectedTabId } )
126- state. chatTapGroup . tabInfo = chatTabInfo
127- if !chatTabInfo. contains ( where: { $0. id == state. chatTapGroup . selectedTabId } ) {
124+ let previousSelectedIndex = state. chatTabGroup . tabInfo
125+ . firstIndex ( where: { $0. id == state. chatTabGroup . selectedTabId } )
126+ state. chatTabGroup . tabInfo = chatTabInfo
127+ if !chatTabInfo. contains ( where: { $0. id == state. chatTabGroup . selectedTabId } ) {
128128 if let previousSelectedIndex {
129129 let proposedSelectedIndex = previousSelectedIndex - 1
130130 if proposedSelectedIndex >= 0 ,
131131 proposedSelectedIndex < chatTabInfo. endIndex
132132 {
133- state. chatTapGroup . selectedTabId = chatTabInfo [ proposedSelectedIndex] . id
133+ state. chatTabGroup . selectedTabId = chatTabInfo [ proposedSelectedIndex] . id
134134 } else {
135- state. chatTapGroup . selectedTabId = chatTabInfo. first? . id
135+ state. chatTabGroup . selectedTabId = chatTabInfo. first? . id
136136 }
137137 } else {
138- state. chatTapGroup . selectedTabId = nil
138+ state. chatTabGroup . selectedTabId = nil
139139 }
140140 }
141141 return . none
142142
143143 case let . closeTabButtonClicked( id) :
144- let firstIndex = state. chatTapGroup . tabInfo. firstIndex { $0. id == id }
144+ let firstIndex = state. chatTabGroup . tabInfo. firstIndex { $0. id == id }
145145 let nextIndex = {
146146 guard let firstIndex else { return 0 }
147147 let nextIndex = firstIndex - 1
148148 return max ( nextIndex, 0 )
149149 } ( )
150- state. chatTapGroup . tabInfo. removeAll { $0. id == id }
151- if state. chatTapGroup . tabInfo. isEmpty {
150+ state. chatTabGroup . tabInfo. removeAll { $0. id == id }
151+ if state. chatTabGroup . tabInfo. isEmpty {
152152 state. isPanelDisplayed = false
153153 }
154- if nextIndex < state. chatTapGroup . tabInfo. count {
155- state. chatTapGroup . selectedTabId = state. chatTapGroup . tabInfo [ nextIndex] . id
154+ if nextIndex < state. chatTabGroup . tabInfo. count {
155+ state. chatTabGroup . selectedTabId = state. chatTabGroup . tabInfo [ nextIndex] . id
156156 } else {
157- state. chatTapGroup . selectedTabId = nil
157+ state. chatTabGroup . selectedTabId = nil
158158 }
159159 return . none
160160
161161 case . createNewTapButtonHovered:
162- state. chatTapGroup . tabCollection = chatTabBuilderCollection ( )
162+ state. chatTabGroup . tabCollection = chatTabBuilderCollection ( )
163163 return . none
164164
165165 case . createNewTapButtonClicked:
166166 return . none // handled elsewhere
167167
168168 case let . tabClicked( id) :
169- guard state. chatTapGroup . tabInfo. contains ( where: { $0. id == id } ) else {
170- state. chatTapGroup . selectedTabId = nil
169+ guard state. chatTabGroup . tabInfo. contains ( where: { $0. id == id } ) else {
170+ state. chatTabGroup . selectedTabId = nil
171171 return . none
172172 }
173- state. chatTapGroup . selectedTabId = id
173+ state. chatTabGroup . selectedTabId = id
174174 return . none
175175
176176 case let . appendAndSelectTab( tab) :
177- guard !state. chatTapGroup . tabInfo. contains ( where: { $0. id == tab. id } )
177+ guard !state. chatTabGroup . tabInfo. contains ( where: { $0. id == tab. id } )
178178 else { return . none }
179- state. chatTapGroup . tabInfo. append ( tab)
180- state. chatTapGroup . selectedTabId = tab. id
179+ state. chatTabGroup . tabInfo. append ( tab)
180+ state. chatTabGroup . selectedTabId = tab. id
181181 return . none
182182
183183 case . switchToNextTab:
184- let selectedId = state. chatTapGroup . selectedTabId
185- guard let index = state. chatTapGroup . tabInfo
184+ let selectedId = state. chatTabGroup . selectedTabId
185+ guard let index = state. chatTabGroup . tabInfo
186186 . firstIndex ( where: { $0. id == selectedId } )
187187 else { return . none }
188188 let nextIndex = index + 1
189- if nextIndex >= state. chatTapGroup . tabInfo. endIndex {
189+ if nextIndex >= state. chatTabGroup . tabInfo. endIndex {
190190 return . none
191191 }
192- let targetId = state. chatTapGroup . tabInfo [ nextIndex] . id
193- state. chatTapGroup . selectedTabId = targetId
192+ let targetId = state. chatTabGroup . tabInfo [ nextIndex] . id
193+ state. chatTabGroup . selectedTabId = targetId
194194 return . none
195195
196196 case . switchToPreviousTab:
197- let selectedId = state. chatTapGroup . selectedTabId
198- guard let index = state. chatTapGroup . tabInfo
197+ let selectedId = state. chatTabGroup . selectedTabId
198+ guard let index = state. chatTabGroup . tabInfo
199199 . firstIndex ( where: { $0. id == selectedId } )
200200 else { return . none }
201201 let previousIndex = index - 1
202- if previousIndex < 0 || previousIndex >= state. chatTapGroup . tabInfo. endIndex {
202+ if previousIndex < 0 || previousIndex >= state. chatTabGroup . tabInfo. endIndex {
203203 return . none
204204 }
205- let targetId = state. chatTapGroup . tabInfo [ previousIndex] . id
206- state. chatTapGroup . selectedTabId = targetId
205+ let targetId = state. chatTabGroup . tabInfo [ previousIndex] . id
206+ state. chatTabGroup . selectedTabId = targetId
207207 return . none
208208
209209 case . chatTab:
210210 return . none
211211 }
212- } . forEach ( \. chatTapGroup . tabInfo, action: / Action. chatTab) {
212+ } . forEach ( \. chatTabGroup . tabInfo, action: / Action. chatTab) {
213213 ChatTabItem ( )
214214 }
215215 }
0 commit comments