diff --git a/Riot/Modules/Room/Views/WYSIWYGInputToolbar/WysiwygInputToolbarView.swift b/Riot/Modules/Room/Views/WYSIWYGInputToolbar/WysiwygInputToolbarView.swift index 30ea8f3e7..c8ba198e2 100644 --- a/Riot/Modules/Room/Views/WYSIWYGInputToolbar/WysiwygInputToolbarView.swift +++ b/Riot/Modules/Room/Views/WYSIWYGInputToolbar/WysiwygInputToolbarView.swift @@ -58,10 +58,10 @@ class WysiwygInputToolbarView: MXKRoomInputToolbarView, NibLoadable, HtmlRoomInp var sendMode: RoomInputToolbarViewSendMode { get { - viewModel.sendMode + viewModel.sendMode.legacySendMode } set { - viewModel.sendMode = newValue + viewModel.sendMode = ComposerSendMode(from: newValue) } } @@ -167,3 +167,23 @@ class WysiwygInputToolbarView: MXKRoomInputToolbarView, NibLoadable, HtmlRoomInp hostingViewController.view.backgroundColor = theme.colors.background } } + +fileprivate extension ComposerSendMode { + init(from sendMode: RoomInputToolbarViewSendMode) { + switch sendMode { + case .reply: self = .reply + case .edit: self = .edit + case .createDM: self = .createDM + default: self = .send + } + } + + var legacySendMode: RoomInputToolbarViewSendMode { + switch self { + case .createDM: return .createDM + case .reply: return .reply + case .edit: return .edit + case .send: return .send + } + } +} diff --git a/RiotSwiftUI/Modules/Room/Composer/Model/ComposerModels.swift b/RiotSwiftUI/Modules/Room/Composer/Model/ComposerModels.swift index 85190ee81..2179db31b 100644 --- a/RiotSwiftUI/Modules/Room/Composer/Model/ComposerModels.swift +++ b/RiotSwiftUI/Modules/Room/Composer/Model/ComposerModels.swift @@ -96,6 +96,13 @@ extension FormatType { } } +enum ComposerSendMode: Equatable { + case send + case edit + case reply + case createDM +} + enum ComposerViewAction { case cancel } diff --git a/RiotSwiftUI/Modules/Room/Composer/Model/ComposerViewState.swift b/RiotSwiftUI/Modules/Room/Composer/Model/ComposerViewState.swift index 9b628c592..6cba03bed 100644 --- a/RiotSwiftUI/Modules/Room/Composer/Model/ComposerViewState.swift +++ b/RiotSwiftUI/Modules/Room/Composer/Model/ComposerViewState.swift @@ -18,7 +18,7 @@ import Foundation struct ComposerViewState: BindableState { var eventSenderDisplayName: String? - var sendMode: RoomInputToolbarViewSendMode = .send + var sendMode: ComposerSendMode = .send } extension ComposerViewState { diff --git a/RiotSwiftUI/Modules/Room/Composer/View/Composer.swift b/RiotSwiftUI/Modules/Room/Composer/View/Composer.swift index e8738e769..b52b80233 100644 --- a/RiotSwiftUI/Modules/Room/Composer/View/Composer.swift +++ b/RiotSwiftUI/Modules/Room/Composer/View/Composer.swift @@ -109,7 +109,7 @@ struct Composer: View { } .clipShape(rect) .overlay(rect.stroke(theme.colors.quinaryContent, lineWidth: 2)) - .padding(.horizontal, 12) + .padding(.horizontal, horizontalPadding) .padding(.top, 8) .padding(.bottom, 4) HStack { diff --git a/RiotSwiftUI/Modules/Room/Composer/ViewModel/ComposerViewModel.swift b/RiotSwiftUI/Modules/Room/Composer/ViewModel/ComposerViewModel.swift index 811d56752..2680a02c2 100644 --- a/RiotSwiftUI/Modules/Room/Composer/ViewModel/ComposerViewModel.swift +++ b/RiotSwiftUI/Modules/Room/Composer/ViewModel/ComposerViewModel.swift @@ -27,7 +27,7 @@ class ComposerViewModel: ComposerViewModelType, ComposerViewModelProtocol { // MARK: Public var callback: ((ComposerViewModelResult) -> Void)? - var sendMode: RoomInputToolbarViewSendMode { + var sendMode: ComposerSendMode { get { state.sendMode } diff --git a/RiotSwiftUI/Modules/Room/Composer/ViewModel/ComposerViewModelProtocol.swift b/RiotSwiftUI/Modules/Room/Composer/ViewModel/ComposerViewModelProtocol.swift index 3c1b19de1..1448f2d1b 100644 --- a/RiotSwiftUI/Modules/Room/Composer/ViewModel/ComposerViewModelProtocol.swift +++ b/RiotSwiftUI/Modules/Room/Composer/ViewModel/ComposerViewModelProtocol.swift @@ -19,6 +19,6 @@ import Foundation protocol ComposerViewModelProtocol { var context: ComposerViewModelType.Context { get } var callback: ((ComposerViewModelResult) -> Void)? { get set } - var sendMode: RoomInputToolbarViewSendMode { get set } + var sendMode: ComposerSendMode { get set } var eventSenderDisplayName: String? { get set } }