aboutsummaryrefslogtreecommitdiff
path: root/Hotline/Models/ChatMessage.swift
diff options
context:
space:
mode:
Diffstat (limited to 'Hotline/Models/ChatMessage.swift')
-rw-r--r--Hotline/Models/ChatMessage.swift45
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 {