diff --git a/ElementX/Sources/Screens/RoomScreen/RoomScreenModels.swift b/ElementX/Sources/Screens/RoomScreen/RoomScreenModels.swift index e8b7c1f38..34088d18c 100644 --- a/ElementX/Sources/Screens/RoomScreen/RoomScreenModels.swift +++ b/ElementX/Sources/Screens/RoomScreen/RoomScreenModels.swift @@ -215,7 +215,7 @@ struct RoomMemberState { /// Is also nice to have this as a wrapper for any state that is directly connected to the timeline. struct TimelineViewState { var canBackPaginate = true - var isBackPaginating = false + var isBackPaginating = true // These can be removed when we have full swiftUI and moved as @State values in the view var scrollToBottomPublisher = PassthroughSubject() diff --git a/ElementX/Sources/Screens/RoomScreen/View/Timeline/UITimelineView.swift b/ElementX/Sources/Screens/RoomScreen/View/Timeline/UITimelineView.swift index 21570e634..56db4163b 100644 --- a/ElementX/Sources/Screens/RoomScreen/View/Timeline/UITimelineView.swift +++ b/ElementX/Sources/Screens/RoomScreen/View/Timeline/UITimelineView.swift @@ -46,10 +46,6 @@ struct UITimelineView: UIViewControllerRepresentable { init(viewModelContext: RoomScreenViewModel.Context) { context = viewModelContext - - if viewModelContext.viewState.timelineViewState.itemViewStates.isEmpty { - viewModelContext.send(viewAction: .paginateBackwards) - } } /// Updates the specified table view's properties from the current view state. diff --git a/ElementX/Sources/Services/Timeline/TimelineController/RoomTimelineController.swift b/ElementX/Sources/Services/Timeline/TimelineController/RoomTimelineController.swift index fcb186582..f470395b1 100644 --- a/ElementX/Sources/Services/Timeline/TimelineController/RoomTimelineController.swift +++ b/ElementX/Sources/Services/Timeline/TimelineController/RoomTimelineController.swift @@ -57,8 +57,11 @@ class RoomTimelineController: RoomTimelineControllerProtocol { } .store(in: &cancellables) + // Inform the world that the initial items are loading from the store + callbacks.send(.isBackPaginating(true)) serialDispatchQueue.async { self.updateTimelineItems() + self.callbacks.send(.isBackPaginating(false)) } NotificationCenter.default.addObserver(self, selector: #selector(contentSizeCategoryDidChange), name: UIContentSizeCategory.didChangeNotification, object: nil)