|
1 | 1 | import ChatService |
2 | 2 | import ComposableArchitecture |
3 | 3 | import Foundation |
| 4 | +import MarkdownUI |
4 | 5 | import OpenAIService |
5 | 6 | import Preferences |
6 | 7 | import Terminal |
@@ -40,12 +41,14 @@ public struct DisplayedChatMessage: Equatable { |
40 | 41 | public var id: String |
41 | 42 | public var role: Role |
42 | 43 | public var text: String |
| 44 | + public var markdownContent: MarkdownContent |
43 | 45 | public var references: [Reference] = [] |
44 | 46 |
|
45 | 47 | public init(id: String, role: Role, text: String, references: [Reference]) { |
46 | 48 | self.id = id |
47 | 49 | self.role = role |
48 | 50 | self.text = text |
| 51 | + self.markdownContent = .init(text) |
49 | 52 | self.references = references |
50 | 53 | } |
51 | 54 | } |
@@ -151,7 +154,7 @@ struct Chat { |
151 | 154 | case let .setIsEnabled(isEnabled): |
152 | 155 | state.isEnabled = isEnabled |
153 | 156 | return .none |
154 | | - |
| 157 | + |
155 | 158 | case .sendButtonTapped: |
156 | 159 | guard !state.typedMessage.isEmpty else { return .none } |
157 | 160 | let message = state.typedMessage |
@@ -213,11 +216,11 @@ struct Chat { |
213 | 216 | await openURL(url) |
214 | 217 | } |
215 | 218 | } |
216 | | - |
| 219 | + |
217 | 220 | case .manuallyScrolledUp: |
218 | 221 | state.isPinnedToBottom = false |
219 | 222 | return .none |
220 | | - |
| 223 | + |
221 | 224 | case .scrollToBottomButtonTapped: |
222 | 225 | state.isPinnedToBottom = true |
223 | 226 | return .none |
@@ -248,7 +251,7 @@ struct Chat { |
248 | 251 | let debouncedHistoryChange = TimedDebounceFunction(duration: 0.2) { |
249 | 252 | await send(.historyChanged) |
250 | 253 | } |
251 | | - |
| 254 | + |
252 | 255 | for await _ in stream { |
253 | 256 | await debouncedHistoryChange() |
254 | 257 | } |
@@ -502,9 +505,10 @@ private actor TimedDebounceFunction { |
502 | 505 | } |
503 | 506 | } |
504 | 507 | } |
505 | | - |
| 508 | + |
506 | 509 | func fire() async { |
507 | 510 | lastFireTime = Date() |
508 | 511 | await block() |
509 | 512 | } |
510 | 513 | } |
| 514 | + |
0 commit comments