Update composer library to 1.3.0 and apply changes

This commit is contained in:
aringenbach
2023-03-21 10:26:37 +01:00
parent 24df7ca032
commit 37a8aa5734
5 changed files with 66 additions and 46 deletions

View File

@@ -45,7 +45,7 @@ class WysiwygInputToolbarView: MXKRoomInputToolbarView, NibLoadable, HtmlRoomInp
private var hostingViewController: VectorHostingController!
private lazy var wysiwygViewModel = WysiwygComposerViewModel(
parserStyle: WysiwygInputToolbarView.parserStyle,
permalinkReplacer: self
permalinkReplacer: permalinkReplacer
)
/// Compute current HTML parser style for composer.
private static var parserStyle: HTMLParserStyle {
@@ -73,6 +73,12 @@ class WysiwygInputToolbarView: MXKRoomInputToolbarView, NibLoadable, HtmlRoomInp
}
// MARK: Public
override var delegate: MXKRoomInputToolbarViewDelegate! {
didSet {
wysiwygViewModel.permalinkReplacer = permalinkReplacer
}
}
override var placeholder: String! {
get {
@@ -138,6 +144,10 @@ class WysiwygInputToolbarView: MXKRoomInputToolbarView, NibLoadable, HtmlRoomInp
private weak var toolbarViewDelegate: RoomInputToolbarViewDelegate? {
return (delegate as? RoomInputToolbarViewDelegate) ?? nil
}
private var permalinkReplacer: PermalinkReplacer? {
return (delegate as? PermalinkReplacer)
}
override func awakeFromNib() {
super.awakeFromNib()
@@ -207,6 +217,15 @@ class WysiwygInputToolbarView: MXKRoomInputToolbarView, NibLoadable, HtmlRoomInp
if !value {
self.voiceMessageBottomConstraint?.constant = 2
}
},
wysiwygViewModel.$plainTextContent
.dropFirst()
.removeDuplicates()
.sink { [weak self] value in
guard let self else { return }
self.textMessage = value.string
self.toolbarViewDelegate?.roomInputToolbarViewDidChangeTextMessage(self)
}
]
@@ -443,12 +462,6 @@ class WysiwygInputToolbarView: MXKRoomInputToolbarView, NibLoadable, HtmlRoomInp
}
}
extension WysiwygInputToolbarView: PermalinkReplacer {
func replacementForLink(_ link: String, text: String) -> NSAttributedString? {
return toolbarViewDelegate?.didRequestAttachmentString(forLink: link, andDisplayName: text)
}
}
// MARK: - LegacySendModeAdapter
fileprivate extension ComposerSendMode {