mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-04 10:33:45 +00:00
updated preview tests
This commit is contained in:
+11
-6
@@ -54,12 +54,9 @@ struct AdvancedSettingsScreen: View {
|
||||
|
||||
private var timelineMediaSection: some View {
|
||||
Section {
|
||||
ListRow(label: .plain(title: L10n.screenAdvancedSettingsShowMediaTimelineAlwaysShow),
|
||||
kind: .selection(isSelected: context.timelineMediaVisibility == .always) { context.timelineMediaVisibility = .always })
|
||||
ListRow(label: .plain(title: L10n.screenAdvancedSettingsShowMediaTimelinePrivateRooms),
|
||||
kind: .selection(isSelected: context.timelineMediaVisibility == .privateOnly) { context.timelineMediaVisibility = .privateOnly })
|
||||
ListRow(label: .plain(title: L10n.screenAdvancedSettingsShowMediaTimelineAlwaysHide),
|
||||
kind: .selection(isSelected: context.timelineMediaVisibility == .never) { context.timelineMediaVisibility = .never })
|
||||
ListRow(label: .plain(title: L10n.screenAdvancedSettingsShowMediaTimelineTitle),
|
||||
kind: .inlinePicker(selection: $context.timelineMediaVisibility,
|
||||
items: TimelineMediaVisibility.items))
|
||||
} header: {
|
||||
Text(L10n.screenAdvancedSettingsShowMediaTimelineTitle)
|
||||
.compoundListSectionHeader()
|
||||
@@ -94,3 +91,11 @@ struct AdvancedSettingsScreen_Previews: PreviewProvider, TestablePreview {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private extension TimelineMediaVisibility {
|
||||
static var items: [(title: String, tag: TimelineMediaVisibility)] {
|
||||
[(title: L10n.screenAdvancedSettingsShowMediaTimelineAlwaysShow, tag: .always),
|
||||
(title: L10n.screenAdvancedSettingsShowMediaTimelinePrivateRooms, tag: .privateOnly),
|
||||
(title: L10n.screenAdvancedSettingsShowMediaTimelineAlwaysHide, tag: .never)]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -528,18 +528,20 @@ class TimelineViewModel: TimelineViewModelType, TimelineViewModelProtocol {
|
||||
.store(in: &cancellables)
|
||||
|
||||
appSettings.$timelineMediaVisibility
|
||||
.combineLatest(roomProxy.infoPublisher
|
||||
.map(\.isPublic)
|
||||
.removeDuplicates()
|
||||
.receive(on: DispatchQueue.main))
|
||||
.map { timelineMediaVisibility, isPublic in
|
||||
.removeDuplicates()
|
||||
.flatMap { [weak self] timelineMediaVisibility -> AnyPublisher<Bool, Never> in
|
||||
switch timelineMediaVisibility {
|
||||
case .always:
|
||||
false
|
||||
case .privateOnly:
|
||||
isPublic
|
||||
return Just(false).eraseToAnyPublisher()
|
||||
case .never:
|
||||
true
|
||||
return Just(true).eraseToAnyPublisher()
|
||||
case .privateOnly:
|
||||
guard let self else { return Just(false).eraseToAnyPublisher() }
|
||||
return roomProxy.infoPublisher
|
||||
.map(\.isPublic)
|
||||
.removeDuplicates()
|
||||
.receive(on: DispatchQueue.main)
|
||||
.eraseToAnyPublisher()
|
||||
}
|
||||
}
|
||||
.weakAssign(to: \.state.hideTimelineMedia, on: self)
|
||||
|
||||
Reference in New Issue
Block a user