blob: e585cdf18bd8aa5b44f436339fe7833b06cb7a22 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
import SwiftUI
enum ChatMessageType {
case agreement
case status
case message
case server
}
struct ChatMessage: Identifiable {
let id = UUID()
let text: String
let type: ChatMessageType
let date: Date
let username: String?
static let parser = /^\s*([^\:]+):\s*([\s\S]+)$/
init(text: String, type: ChatMessageType, date: Date) {
self.type = type
self.date = date
if
type == .message,
let match = text.firstMatch(of: ChatMessage.parser) {
self.username = String(match.1)
self.text = String(match.2)
}
else {
self.username = nil
self.text = text
}
}
}
|