Add a banner that offers the user to transition to native sliding sync (#3252)

* Fixes #2508 - Offer user to transition to SSS

* Rename `HomeScreenBannerMode.shown` to `HomeScreenBannerMode.show`

* Generate and use preview tests for the migration banner

* Bump the RustSDK to v1.0.46

* Address PR review comment
This commit is contained in:
Stefan Ceriu
2024-09-11 08:21:27 +03:00
committed by GitHub
parent f264c2559c
commit bef892451e
16 changed files with 186 additions and 26 deletions
@@ -19,6 +19,7 @@ enum HomeScreenViewModelAction {
case presentStartChatScreen
case presentGlobalSearch
case presentRoomDirectorySearch
case logoutWithoutConfirmation
case logout
}
@@ -31,6 +32,8 @@ enum HomeScreenViewAction {
case startChat
case confirmRecoveryKey
case skipRecoveryKeyConfirmation
case confirmSlidingSyncUpgrade
case skipSlidingSyncUpgrade
case updateVisibleItemRange(Range<Int>)
case globalSearch
case markRoomAsUnread(roomIdentifier: String)
@@ -59,10 +62,10 @@ enum HomeScreenRoomListMode: CustomStringConvertible {
}
}
enum SecurityBannerMode {
enum HomeScreenBannerMode {
case none
case dismissed
case recoveryKeyConfirmation
case show
}
struct HomeScreenViewState: BindableState {
@@ -70,7 +73,9 @@ struct HomeScreenViewState: BindableState {
var userDisplayName: String?
var userAvatarURL: URL?
var securityBannerMode = SecurityBannerMode.none
var securityBannerMode = HomeScreenBannerMode.none
var slidingSyncMigrationBannerMode = HomeScreenBannerMode.none
var requiresExtraAccountSetup = false
var rooms: [HomeScreenRoom] = []
@@ -110,10 +115,6 @@ struct HomeScreenViewState: BindableState {
var shouldShowFilters: Bool {
!bindings.isSearchFieldFocused && roomListMode == .rooms
}
var shouldShowRecoveryKeyConfirmationBanner: Bool {
securityBannerMode == .recoveryKeyConfirmation
}
}
struct HomeScreenViewStateBindings {