Added link detection in plain text (not available ootb in SwiftUI) and support for user, room, event and group identifiers + room aliases.

This commit is contained in:
Stefan Ceriu
2022-03-24 16:26:58 +02:00
parent fde8ce63eb
commit ff7c8f6128
8 changed files with 176 additions and 28 deletions
@@ -24,6 +24,7 @@ enum RoomScreenViewAction {
case loadPreviousPage
case itemAppeared(id: String)
case itemDisappeared(id: String)
case linkClicked(url: URL)
}
struct RoomScreenViewState: BindableState {
@@ -72,6 +72,8 @@ class RoomScreenViewModel: RoomScreenViewModelType, RoomScreenViewModelProtocol
timelineController.processItemAppearance(id)
case .itemDisappeared(let id):
timelineController.processItemDisappearance(id)
case .linkClicked(let url):
MXLog.warning("Link clicked: \(url)")
}
}
@@ -49,6 +49,10 @@ struct RoomScreen: View {
.onDisappear {
context.send(viewAction: .itemDisappeared(id: timelineItem.id))
}
.environment(\.openURL, OpenURLAction { url in
context.send(viewAction: .linkClicked(url: url))
return .systemAction
})
}
}
.listStyle(.plain)