Fixes #367 - Refactor AppSettings usage patterns

This commit is contained in:
Stefan Ceriu
2022-12-22 10:59:12 +02:00
committed by Stefan Ceriu
parent e5522e7753
commit 98cfc2c9fb
9 changed files with 177 additions and 19 deletions
@@ -64,6 +64,8 @@ struct RoomScreenViewState: BindableState {
var canBackPaginate = true
var isBackPaginating = false
var showLoading = false
var timelineStyle: TimelineStyle
var bindings: RoomScreenViewStateBindings
var contextMenuActionProvider: (@MainActor (_ itemId: String) -> TimelineItemContextMenuActions?)?
@@ -40,6 +40,7 @@ class RoomScreenViewModel: RoomScreenViewModelType, RoomScreenViewModelProtocol
super.init(initialViewState: RoomScreenViewState(roomId: timelineController.roomID,
roomTitle: roomName ?? "Unknown room 💥",
roomAvatarURL: roomAvatarUrl,
timelineStyle: ServiceLocator.shared.settings.timelineStyle,
bindings: .init(composerText: "", composerFocused: false)),
imageProvider: mediaProvider)
@@ -78,6 +79,11 @@ class RoomScreenViewModel: RoomScreenViewModelType, RoomScreenViewModelProtocol
return self.contextMenuActionsForItemId(itemId)
}
ServiceLocator.shared.settings.$timelineStyle.sink { [weak self] timelineStyle in
self?.state.timelineStyle = timelineStyle
}
.store(in: &cancellables)
buildTimelineViews()
}
@@ -17,7 +17,6 @@
import SwiftUI
struct RoomScreen: View {
@ObservedObject private var settings = ServiceLocator.shared.settings
@ObservedObject var context: RoomScreenViewModel.Context
@State private var showReactionsMenuForItemId = ""
@@ -45,7 +44,7 @@ struct RoomScreen: View {
TimelineView()
.id(context.viewState.roomId)
.environmentObject(context)
.timelineStyle(settings.timelineStyle)
.timelineStyle(context.viewState.timelineStyle)
.overlay(alignment: .bottomTrailing) { scrollToBottomButton }
}