Merge pull request #6938 from vector-im/mauroromito/6935_wysiwyg_placeholder

Rich Text Composer Placeholder Text
This commit is contained in:
Velin92
2022-10-20 10:04:33 +02:00
committed by GitHub
13 changed files with 114 additions and 89 deletions
@@ -19,6 +19,7 @@ import Foundation
struct ComposerViewState: BindableState {
var eventSenderDisplayName: String?
var sendMode: ComposerSendMode = .send
var placeholder: String?
}
extension ComposerViewState {
@@ -63,4 +63,10 @@ final class ComposerViewModelTests: XCTestCase {
context.send(viewAction: .cancel)
XCTAssert(result == .cancel)
}
func testPlaceholder() {
XCTAssert(context.viewState.placeholder == nil)
viewModel.placeholder = "Placeholder Test"
XCTAssert(context.viewState.placeholder == "Placeholder Test")
}
}
@@ -111,6 +111,7 @@ struct Composer: View {
didUpdateText: wysiwygViewModel.didUpdateText
)
.tintColor(theme.colors.accent)
.placeholder(viewModel.viewState.placeholder, color: theme.colors.tertiaryContent)
.frame(height: wysiwygViewModel.idealHeight)
.padding(.horizontal, horizontalPadding)
.onAppear {
@@ -45,6 +45,15 @@ final class ComposerViewModel: ComposerViewModelType, ComposerViewModelProtocol
}
}
var placeholder: String? {
get {
state.placeholder
}
set {
state.placeholder = newValue
}
}
// MARK: - Public
override func process(viewAction: ComposerViewAction) {
@@ -21,4 +21,5 @@ protocol ComposerViewModelProtocol {
var callback: ((ComposerViewModelResult) -> Void)? { get set }
var sendMode: ComposerSendMode { get set }
var eventSenderDisplayName: String? { get set }
var placeholder: String? { get set }
}