 
     fileprivate let viewModel: TalkPageViewModel
     fileprivate var headerView: TalkPageHeaderView?
+
+    fileprivate var topicReplyOnboardingHostingViewController: TalkPageTopicReplyOnboardingHostingController?
     
     fileprivate lazy var shareButton: IconBarButtonItem = IconBarButtonItem(image: UIImage(systemName: "square.and.arrow.up"), style: .plain, target: self, action: #selector(userDidTapShareButton))
     


extension TalkPageViewController: TalkPageCellReplyDelegate {
    func tappedReply(commentViewModel: TalkPageCellCommentViewModel) {
        replyComposeController.setupAndDisplay(in: self, commentViewModel: commentViewModel)
    }
}

        navigate(to: url.absoluteURL)
    }
}

extension TalkPageViewController: TalkPageTopicReplyOnboardingDelegate {

    func presentTopicReplyOnboardingIfNecessary() {
        guard !UserDefaults.standard.wmf_userHasOnboardedToContributingToTalkPages else {
            return
        }

        let topicReplyOnboardingHostingViewController = TalkPageTopicReplyOnboardingHostingController(theme: theme)
        topicReplyOnboardingHostingViewController.delegate = self
        topicReplyOnboardingHostingViewController.modalPresentationStyle = .pageSheet
        self.topicReplyOnboardingHostingViewController = topicReplyOnboardingHostingViewController

        if let presentedViewController = presentedViewController {
            presentedViewController.present(topicReplyOnboardingHostingViewController, animated: true)
        } else {
            present(topicReplyOnboardingHostingViewController, animated: true)
        }
    }

    func userDidDismissTopicReplyOnboardingView() {
        UserDefaults.standard.wmf_userHasOnboardedToContributingToTalkPages = true
    }
}
