Initial integration of RTE (#1464)

* Initial integration of RTE

* Fix `clipped`, `focused` and composer view type

* Remove horizontal padding

* Add `ComposerToolbar` mock

* Restore `composerFocusedSubject`

* Allow using HTML from RTE on message sent

* Fix new message content API

* Add feature flag for Rich Text Editor
This commit is contained in:
aringenbach
2023-08-29 14:37:13 +02:00
committed by GitHub
parent 08ca969526
commit d1573ae40d
26 changed files with 334 additions and 214 deletions
@@ -15,6 +15,7 @@
//
import SwiftUI
import WysiwygComposer
struct RoomScreen: View {
@ObservedObject var context: RoomScreenViewModel.Context
@@ -22,7 +23,7 @@ struct RoomScreen: View {
let composerToolbar: ComposerToolbar
private let attachmentButtonPadding = 10.0
var body: some View {
timeline
.background(Color.compound.bgCanvasDefault.ignoresSafeArea())
@@ -152,12 +153,10 @@ struct RoomScreen_Previews: PreviewProvider {
appSettings: ServiceLocator.shared.settings,
analytics: ServiceLocator.shared.analytics,
userIndicatorController: ServiceLocator.shared.userIndicatorController)
static let composerViewModel = ComposerToolbarViewModel()
static var previews: some View {
NavigationStack {
RoomScreen(context: viewModel.context, composerToolbar: ComposerToolbar(context: composerViewModel.context))
RoomScreen(context: viewModel.context, composerToolbar: ComposerToolbar.mock())
}
}
}
@@ -15,6 +15,7 @@
//
import SwiftUI
import WysiwygComposer
/// A table view wrapper that displays the timeline of a room.
struct UITimelineView: UIViewControllerRepresentable {
@@ -86,11 +87,9 @@ struct UITimelineView_Previews: PreviewProvider {
analytics: ServiceLocator.shared.analytics,
userIndicatorController: ServiceLocator.shared.userIndicatorController)
static let composerViewModel = ComposerToolbarViewModel()
static var previews: some View {
NavigationStack {
RoomScreen(context: viewModel.context, composerToolbar: ComposerToolbar(context: composerViewModel.context))
RoomScreen(context: viewModel.context, composerToolbar: ComposerToolbar.mock())
}
}
}
@@ -18,6 +18,7 @@ import Combine
import SwiftUI
import SwiftUIIntrospect
import WysiwygComposer
struct TimelineView: View {
let viewState: TimelineViewState
@@ -174,11 +175,9 @@ struct TimelineView_Previews: PreviewProvider {
analytics: ServiceLocator.shared.analytics,
userIndicatorController: ServiceLocator.shared.userIndicatorController)
static let composerViewModel = ComposerToolbarViewModel()
static var previews: some View {
NavigationStack {
RoomScreen(context: viewModel.context, composerToolbar: ComposerToolbar(context: composerViewModel.context))
RoomScreen(context: viewModel.context, composerToolbar: ComposerToolbar.mock())
}
}
}