                 
                 switch result {
                 case .success(let fetchResult):
-                    if !fetchResult.isInitialLocalResult {
-                        self.fakeProgressController.stop()
-                        self.addButton?.isEnabled = true
-                        self.repliesAreDisabled = false
-                    }
+
                     
                     self.talkPage = try? self.dataStore.viewContext.existingObject(with: fetchResult.objectID) as? TalkPage
                     if let talkPage = self.talkPage {
+                        
                         if let topics = talkPage.topics, topics.count > 0 {
-                            self.hideEmptyView()
+                            self.viewState = fetchResult.isInitialLocalResult ? .fetchInitialResultData : .fetchFinishedResultData
                         } else {
-                            self.wmf_showEmptyView(of: .emptyTalkPage, theme: self.theme, frame: self.view.bounds)
+                            self.viewState = fetchResult.isInitialLocalResult ? .fetchInitialResultEmpty : .fetchFinishedResultEmpty
                         }
                         self.setupTopicListViewControllerIfNeeded(with: talkPage)
                         if let headerView = self.headerView,

        return progressController
    }()
    
    private var repliesAreDisabled = true {
        didSet {
            replyListViewController?.repliesAreDisabled = repliesAreDisabled
        }
    }
    

            return
        }
        
        viewState = .linkLoading(loadingViewController: loadingViewController)
        
        self.dataStore.articleSummaryController.updateOrCreateArticleSummariesForArticles(withURLs: [absoluteURL]) { [weak self, weak loadingViewController] (articles, error) in
            
