mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-04 19:11:45 +00:00
updated test for hidden avatars in invites
This commit is contained in:
@@ -15,9 +15,10 @@ struct HomeScreenInviteCell: View {
|
||||
|
||||
let room: HomeScreenRoom
|
||||
let context: HomeScreenViewModel.Context
|
||||
let hideInviteAvatars: Bool
|
||||
|
||||
private var avatar: RoomAvatar {
|
||||
context.viewState.hideInviteAvatars ? .room(id: room.id, name: room.name, avatarURL: nil) : room.avatar
|
||||
hideInviteAvatars ? .room(id: room.id, name: room.name, avatarURL: nil) : room.avatar
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
@@ -140,32 +141,32 @@ struct HomeScreenInviteCell: View {
|
||||
|
||||
struct HomeScreenInviteCell_Previews: PreviewProvider, TestablePreview {
|
||||
static var previews: some View {
|
||||
ScrollView {
|
||||
VStack(spacing: 0) {
|
||||
HomeScreenInviteCell(room: .dmInvite,
|
||||
context: viewModel().context)
|
||||
|
||||
HomeScreenInviteCell(room: .dmInvite,
|
||||
context: viewModel().context)
|
||||
|
||||
HomeScreenInviteCell(room: .roomInvite(),
|
||||
context: viewModel().context)
|
||||
|
||||
HomeScreenInviteCell(room: .roomInvite(),
|
||||
context: viewModel().context)
|
||||
|
||||
HomeScreenInviteCell(room: .roomInvite(alias: "#footest:somewhere.org", avatarURL: .mockMXCAvatar),
|
||||
context: viewModel().context)
|
||||
|
||||
HomeScreenInviteCell(room: .roomInvite(alias: "#footest:somewhere.org"),
|
||||
context: viewModel().context)
|
||||
.dynamicTypeSize(.accessibility1)
|
||||
.previewDisplayName("Aliased room (AX1)")
|
||||
}
|
||||
VStack(spacing: 0) {
|
||||
HomeScreenInviteCell(room: .dmInvite,
|
||||
context: viewModel().context, hideInviteAvatars: false)
|
||||
|
||||
HomeScreenInviteCell(room: .dmInvite,
|
||||
context: viewModel().context, hideInviteAvatars: false)
|
||||
|
||||
HomeScreenInviteCell(room: .roomInvite(),
|
||||
context: viewModel().context, hideInviteAvatars: false)
|
||||
|
||||
HomeScreenInviteCell(room: .roomInvite(),
|
||||
context: viewModel().context, hideInviteAvatars: false)
|
||||
|
||||
HomeScreenInviteCell(room: .roomInvite(alias: "#footest:somewhere.org", avatarURL: .mockMXCAvatar),
|
||||
context: viewModel().context, hideInviteAvatars: false)
|
||||
HomeScreenInviteCell(room: .roomInvite(alias: "#footest:somewhere.org", avatarURL: .mockMXCAvatar),
|
||||
context: viewModel(hideInviteAvatars: true).context, hideInviteAvatars: true)
|
||||
HomeScreenInviteCell(room: .roomInvite(alias: "#footest:somewhere.org"),
|
||||
context: viewModel().context, hideInviteAvatars: false)
|
||||
.dynamicTypeSize(.accessibility1)
|
||||
.previewDisplayName("Aliased room (AX1)")
|
||||
}
|
||||
.previewLayout(.sizeThatFits)
|
||||
}
|
||||
|
||||
static func viewModel() -> HomeScreenViewModel {
|
||||
static func viewModel(hideInviteAvatars: Bool = false) -> HomeScreenViewModel {
|
||||
let clientProxy = ClientProxyMock(.init())
|
||||
|
||||
let userSession = UserSessionMock(.init(clientProxy: clientProxy))
|
||||
|
||||
@@ -27,7 +27,7 @@ struct HomeScreenRoomList: View {
|
||||
HomeScreenRoomCell(room: room, context: context, isSelected: false)
|
||||
.redacted(reason: .placeholder)
|
||||
case .invite:
|
||||
HomeScreenInviteCell(room: room, context: context)
|
||||
HomeScreenInviteCell(room: room, context: context, hideInviteAvatars: context.viewState.hideInviteAvatars)
|
||||
case .knock:
|
||||
HomeScreenKnockedCell(room: room, context: context)
|
||||
case .room:
|
||||
|
||||
@@ -314,6 +314,8 @@ struct JoinRoomScreen_Previews: PreviewProvider, TestablePreview {
|
||||
static let inviteRequiredViewModel = makeViewModel(mode: .inviteRequired)
|
||||
static let invitedViewModel = makeViewModel(mode: .invited(isDM: false))
|
||||
static let invitedDMViewModel = makeViewModel(mode: .invited(isDM: true))
|
||||
static let invitedViewModelWithHiddenAvatars = makeViewModel(mode: .invited(isDM: false), hideInviteAvatars: true)
|
||||
static let invitedDMViewModelWithHiddenAvatars = makeViewModel(mode: .invited(isDM: true), hideInviteAvatars: true)
|
||||
static let knockableViewModel = makeViewModel(mode: .knockable)
|
||||
static let knockedViewModel = makeViewModel(mode: .knocked)
|
||||
static let bannedViewModel = makeViewModel(mode: .banned(sender: "Bob", reason: "Spamming"))
|
||||
@@ -326,6 +328,9 @@ struct JoinRoomScreen_Previews: PreviewProvider, TestablePreview {
|
||||
makePreview(viewModel: inviteRequiredViewModel, mode: .inviteRequired)
|
||||
makePreview(viewModel: invitedViewModel, mode: .invited(isDM: false))
|
||||
makePreview(viewModel: invitedDMViewModel, mode: .invited(isDM: true))
|
||||
makePreview(viewModel: invitedViewModelWithHiddenAvatars,
|
||||
mode: .invited(isDM: false),
|
||||
customPreviewName: "InvitedWithHiddenAvatars")
|
||||
makePreview(viewModel: knockableViewModel, mode: .knockable)
|
||||
makePreview(viewModel: knockedViewModel, mode: .knocked)
|
||||
makePreview(viewModel: bannedViewModel, mode: .banned(sender: nil, reason: nil))
|
||||
@@ -358,8 +363,10 @@ struct JoinRoomScreen_Previews: PreviewProvider, TestablePreview {
|
||||
}
|
||||
}
|
||||
|
||||
static func makeViewModel(mode: JoinRoomScreenMode) -> JoinRoomScreenViewModel {
|
||||
ServiceLocator.shared.settings.knockingEnabled = true
|
||||
static func makeViewModel(mode: JoinRoomScreenMode, hideInviteAvatars: Bool = false) -> JoinRoomScreenViewModel {
|
||||
let appSettings = AppSettings()
|
||||
appSettings.knockingEnabled = true
|
||||
appSettings.hideInviteAvatars = hideInviteAvatars
|
||||
|
||||
let clientProxy = ClientProxyMock(.init())
|
||||
|
||||
@@ -413,7 +420,7 @@ struct JoinRoomScreen_Previews: PreviewProvider, TestablePreview {
|
||||
|
||||
return JoinRoomScreenViewModel(roomID: "1",
|
||||
via: [],
|
||||
appSettings: ServiceLocator.shared.settings,
|
||||
appSettings: appSettings,
|
||||
clientProxy: clientProxy,
|
||||
mediaProvider: MediaProviderMock(configuration: .init()),
|
||||
userIndicatorController: ServiceLocator.shared.userIndicatorController)
|
||||
|
||||
+14
-9
@@ -32,21 +32,26 @@ struct AdvancedSettingsScreen: View {
|
||||
.onChange(of: context.optimizeMediaUploads) {
|
||||
context.send(viewAction: .optimizeMediaUploadsChanged)
|
||||
}
|
||||
|
||||
// TODO: Waiting for designs and copies
|
||||
ListRow(label: .plain(title: "hide avatars",
|
||||
description: ""),
|
||||
kind: .toggle($context.hideInviteAvatars))
|
||||
|
||||
ListRow(label: .plain(title: "hide media",
|
||||
description: ""),
|
||||
kind: .toggle($context.hideTimelineMedia))
|
||||
}
|
||||
|
||||
moderationAndSafetySection
|
||||
}
|
||||
.compoundList()
|
||||
.navigationTitle(L10n.commonAdvancedSettings)
|
||||
.navigationBarTitleDisplayMode(.inline)
|
||||
}
|
||||
|
||||
private var moderationAndSafetySection: some View {
|
||||
Section {
|
||||
ListRow(label: .plain(title: L10n.screenAdvancedSettingsHideTimelineMediaToggleTitle),
|
||||
kind: .toggle($context.hideTimelineMedia))
|
||||
ListRow(label: .plain(title: L10n.screenAdvancedSettingsHideInviteAvatarsToggleTitle),
|
||||
kind: .toggle($context.hideInviteAvatars))
|
||||
} header: {
|
||||
Text(L10n.screenAdvancedSettingsModerationAndSafetySectionTitle)
|
||||
.compoundListSectionHeader()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private extension AppAppearance {
|
||||
|
||||
Reference in New Issue
Block a user