Handle tap on user mentions (#1850)

* user mention routing implemented

* more tests

* better naming

* fixed a test
This commit is contained in:
Mauro
2023-10-03 10:11:05 +02:00
committed by GitHub
parent 7124f24d7c
commit 355535cd75
8 changed files with 169 additions and 37 deletions
@@ -21,6 +21,7 @@ enum AppRoute: Equatable {
case roomList
case room(roomID: String)
case roomDetails(roomID: String)
case roomMemberDetails(userID: String)
case invites
case genericCallLink(url: URL)
}
@@ -30,6 +31,7 @@ struct AppRouteURLParser {
init(appSettings: AppSettings) {
urlParsers = [
MatrixPermalinkParser(appSettings: appSettings),
OIDCCallbackURLParser(appSettings: appSettings),
ElementCallURLParser()
]
@@ -105,3 +107,17 @@ struct ElementCallURLParser: URLParser {
return .genericCallLink(url: url)
}
}
struct MatrixPermalinkParser: URLParser {
let appSettings: AppSettings
func route(from url: URL) -> AppRoute? {
switch PermalinkBuilder.detectPermalink(in: url, baseURL: appSettings.permalinkBaseURL) {
case .userIdentifier(let userID):
return .roomMemberDetails(userID: userID)
// Other cases will be handled in the future
default:
return nil
}
}
}