mirror of
https://github.com/zhigang1992/GitHawk.git
synced 2026-03-30 17:13:47 +08:00
80 lines
2.2 KiB
Swift
80 lines
2.2 KiB
Swift
//
|
|
// IssuePreviewSectionController.swift
|
|
// Freetime
|
|
//
|
|
// Created by Ryan Nystrom on 8/1/17.
|
|
// Copyright © 2017 Ryan Nystrom. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
import IGListKit
|
|
import SnapKit
|
|
|
|
final class IssuePreviewViewController: UIViewController, ListAdapterDataSource {
|
|
|
|
private let collectionView = UICollectionView(frame: .zero, collectionViewLayout: ListCollectionViewLayout.basic())
|
|
private let adapter = ListAdapter(updater: ListAdapterUpdater(), viewController: nil)
|
|
private let markdown: String
|
|
private let owner: String
|
|
private let repo: String
|
|
private var model: IssuePreviewModel?
|
|
|
|
init(
|
|
markdown: String,
|
|
owner: String,
|
|
repo: String
|
|
) {
|
|
self.markdown = markdown
|
|
self.owner = owner
|
|
self.repo = repo
|
|
super.init(nibName: nil, bundle: nil)
|
|
title = NSLocalizedString("Preview", comment: "")
|
|
}
|
|
|
|
required init?(coder aDecoder: NSCoder) {
|
|
fatalError("init(coder:) has not been implemented")
|
|
}
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
|
|
let viewModels = MarkdownModels(
|
|
markdown,
|
|
owner: owner,
|
|
repo: repo,
|
|
width: view.bounds.width,
|
|
viewerCanUpdate: false,
|
|
contentSizeCategory: UIContentSizeCategory.preferred,
|
|
isRoot: false
|
|
)
|
|
model = IssuePreviewModel(models: viewModels)
|
|
|
|
view.addSubview(collectionView)
|
|
collectionView.backgroundColor = .white
|
|
collectionView.alwaysBounceVertical = true
|
|
collectionView.contentInset = Styles.Sizes.listInsetLarge
|
|
collectionView.snp.makeConstraints { make in
|
|
make.edges.equalTo(view)
|
|
}
|
|
|
|
adapter.collectionView = collectionView
|
|
adapter.dataSource = self
|
|
}
|
|
|
|
// MARK: ListAdapterDataSource
|
|
|
|
func objects(for listAdapter: ListAdapter) -> [ListDiffable] {
|
|
guard let model = self.model else { return [] }
|
|
return [model]
|
|
}
|
|
|
|
func listAdapter(_ listAdapter: ListAdapter, sectionControllerFor object: Any) -> ListSectionController {
|
|
return IssuePreviewSectionController()
|
|
}
|
|
|
|
func emptyView(for listAdapter: ListAdapter) -> UIView? {
|
|
return nil
|
|
}
|
|
|
|
}
|