diff options
| author | Dustin Mierau <dustin@mierau.me> | 2025-10-24 22:47:44 -0700 |
|---|---|---|
| committer | Dustin Mierau <dustin@mierau.me> | 2025-10-24 22:47:44 -0700 |
| commit | cf113ea053334175b93770b025c1f7d22eda6eab (patch) | |
| tree | 8f0037e7e9ad3aa592c8475d962d37eb0c867703 /Hotline/Models/ChatMessage.swift | |
| parent | 75ebba6ad7e45e636cd5bb3400d25d040cabad6c (diff) | |
A first pass at chat persistence. Also some chat UI cleanup.
Diffstat (limited to 'Hotline/Models/ChatMessage.swift')
| -rw-r--r-- | Hotline/Models/ChatMessage.swift | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/Hotline/Models/ChatMessage.swift b/Hotline/Models/ChatMessage.swift index e585cdf..365f91f 100644 --- a/Hotline/Models/ChatMessage.swift +++ b/Hotline/Models/ChatMessage.swift @@ -3,8 +3,53 @@ import SwiftUI enum ChatMessageType { case agreement case status + case joined + case left case message case server + case signOut +} + +extension ChatMessageType { + var storageKey: String { + switch self { + case .agreement: + return "agreement" + case .status: + return "status" + case .joined: + return "joined" + case .left: + return "left" + case .message: + return "message" + case .server: + return "server" + case .signOut: + return "signOut" + } + } + + init?(storageKey: String) { + switch storageKey { + case "agreement": + self = .agreement + case "status": + self = .status + case "joined": + self = .joined + case "left": + self = .left + case "message": + self = .message + case "server": + self = .server + case "signOut": + self = .signOut + default: + return nil + } + } } struct ChatMessage: Identifiable { |