diff --git a/osx/kordophone2.xcodeproj/project.pbxproj b/osx/kordophone2.xcodeproj/project.pbxproj index 3f6c97e..43e2dfb 100644 --- a/osx/kordophone2.xcodeproj/project.pbxproj +++ b/osx/kordophone2.xcodeproj/project.pbxproj @@ -322,7 +322,7 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = DQQH5H6GBD; + DEVELOPMENT_TEAM = 3SJALV9BQ7; ENABLE_HARDENED_RUNTIME = NO; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; @@ -349,7 +349,7 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = DQQH5H6GBD; + DEVELOPMENT_TEAM = 3SJALV9BQ7; ENABLE_HARDENED_RUNTIME = NO; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; diff --git a/osx/kordophone2/App.swift b/osx/kordophone2/App.swift index 5f36b24..118ef67 100644 --- a/osx/kordophone2/App.swift +++ b/osx/kordophone2/App.swift @@ -14,7 +14,10 @@ struct KordophoneApp: App WindowGroup { SplitView() } - + .commands { + TextEditingCommands() + } + Settings { PreferencesView() } diff --git a/osx/kordophone2/ConversationListView.swift b/osx/kordophone2/ConversationListView.swift index 444ed50..cdf5a1a 100644 --- a/osx/kordophone2/ConversationListView.swift +++ b/osx/kordophone2/ConversationListView.swift @@ -13,7 +13,7 @@ struct ConversationListView: View @Environment(\.xpcClient) private var xpcClient var body: some View { - List($model.conversations, selection: $model.selectedConversations) { conv in + List($model.conversations, selection: $model.selectedConversation) { conv in let isUnread = conv.wrappedValue.unreadCount > 0 HStack(spacing: 0.0) { @@ -64,14 +64,14 @@ struct ConversationListView: View class ViewModel { var conversations: [Display.Conversation] - var selectedConversations: Set - + var selectedConversation: Display.Conversation.ID? + private var needsReload: Bool = true private let client = XPCClient() public init(conversations: [Display.Conversation] = []) { self.conversations = conversations - self.selectedConversations = Set() + self.selectedConversation = nil setNeedsReload() } diff --git a/osx/kordophone2/MessageEntryView.swift b/osx/kordophone2/MessageEntryView.swift index 51438b4..3147503 100644 --- a/osx/kordophone2/MessageEntryView.swift +++ b/osx/kordophone2/MessageEntryView.swift @@ -36,6 +36,7 @@ struct MessageEntryView: View .font(.body) .scrollDisabled(true) .disabled(selectedConversation == nil) + .id("messageEntry") } .padding(8.0) .background { diff --git a/osx/kordophone2/SplitView.swift b/osx/kordophone2/SplitView.swift index 5a29adf..a48518d 100644 --- a/osx/kordophone2/SplitView.swift +++ b/osx/kordophone2/SplitView.swift @@ -15,7 +15,7 @@ struct SplitView: View private let xpcClient = XPCClient() private var selectedConversation: Display.Conversation? { - guard let id = conversationListModel.selectedConversations.first else { return nil } + guard let id = conversationListModel.selectedConversation else { return nil } return conversationListModel.conversations.first { $0.id == id } } @@ -28,10 +28,10 @@ struct SplitView: View ConversationView(transcriptModel: $transcriptViewModel, entryModel: $entryViewModel) .xpcClient(xpcClient) .selectedConversation(selectedConversation) - .navigationTitle("Kordophone") - .navigationSubtitle(selectedConversation?.displayName ?? "") - .onChange(of: conversationListModel.selectedConversations) { oldValue, newValue in - transcriptViewModel.displayedConversation = conversationListModel.conversations.first { $0.id == newValue.first } + .navigationTitle(selectedConversation?.displayName ?? "Kordophone") + .navigationSubtitle(selectedConversation?.participants.joined(separator: ", ") ?? "") + .onChange(of: conversationListModel.selectedConversation) { oldValue, newValue in + transcriptViewModel.displayedConversation = conversationListModel.conversations.first { $0.id == newValue } } } }