Skip to content

Commit bc26b6b

Browse files
committed
Fix that chat tab settings is not updated at launch
1 parent 874a137 commit bc26b6b

2 files changed

Lines changed: 18 additions & 1 deletion

File tree

Core/Sources/ChatGPTChatTab/Chat.swift

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ struct Chat: ReducerProtocol {
7474
case binding(BindingAction<State>)
7575

7676
case appear
77+
case refresh
7778
case sendButtonTapped
7879
case returnButtonTapped
7980
case stopRespondingButtonTapped
@@ -132,6 +133,12 @@ struct Chat: ReducerProtocol {
132133
await send(.systemPromptChanged)
133134
await send(.extraSystemPromptChanged)
134135
await send(.focusOnTextField)
136+
await send(.refresh)
137+
}
138+
139+
case .refresh:
140+
return .run { send in
141+
await send(.chatMenu(.refresh))
135142
}
136143

137144
case .sendButtonTapped:
@@ -376,6 +383,7 @@ struct ChatMenu: ReducerProtocol {
376383

377384
enum Action: Equatable {
378385
case appear
386+
case refresh
379387
case resetPromptButtonTapped
380388
case temperatureOverrideSelected(Double?)
381389
case chatModelIdOverrideSelected(String?)
@@ -390,6 +398,11 @@ struct ChatMenu: ReducerProtocol {
390398
Reduce { state, action in
391399
switch action {
392400
case .appear:
401+
return .run {
402+
await $0(.refresh)
403+
}
404+
405+
case .refresh:
393406
state.temperatureOverride = service.configuration.overriding.temperature
394407
state.chatModelIdOverride = service.configuration.overriding.modelId
395408
return .none

Core/Sources/ChatGPTChatTab/ChatGPTChatTab.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ public class ChatGPTChatTab: ChatTab {
8989
await tab.service.memory.mutateHistory { history in
9090
history = state.history
9191
}
92+
tab.viewStore.send(.refresh)
9293
}
9394
return builder
9495
}
@@ -140,7 +141,10 @@ public class ChatGPTChatTab: ChatTab {
140141
}
141142
}.store(in: &cancellable)
142143

143-
viewStore.publisher.removeDuplicates().sink { [weak self] _ in
144+
viewStore.publisher.removeDuplicates().debounce(
145+
for: .milliseconds(500),
146+
scheduler: DispatchQueue.main
147+
).sink { [weak self] _ in
144148
Task { @MainActor [weak self] in
145149
self?.chatTabViewStore.send(.tabContentUpdated)
146150
}

0 commit comments

Comments
 (0)