@@ -16,8 +16,9 @@ LabelSectionControllerDelegate {
1616
1717 private let selectedLabels : Set < RepositoryLabel >
1818 private var labels = [ RepositoryLabel] ( )
19+ private let owner : String
20+ private let repo : String
1921 private let client : GithubClient
20- private let request : RepositoryLabelsQuery
2122
2223 init (
2324 selected: [ RepositoryLabel ] ,
@@ -27,7 +28,8 @@ LabelSectionControllerDelegate {
2728 ) {
2829 self . selectedLabels = Set ( selected)
2930 self . client = client
30- self . request = RepositoryLabelsQuery ( owner: owner, repo: repo)
31+ self . owner = owner
32+ self . repo = repo
3133 super. init ( emptyErrorMessage: NSLocalizedString ( " No labels found " , comment: " " ) )
3234 preferredContentSize = Styles . Sizes. contextMenuSize
3335 title = Constants . Strings. labels
@@ -87,20 +89,23 @@ LabelSectionControllerDelegate {
8789 // MARK: Overrides
8890
8991 override func fetch( page: String ? ) {
90- client. client. query ( request, result: { data in
91- data. repository? . labels? . nodes
92- } , completion: { [ weak self] result in
92+ client. fetchRepositoryLabels (
93+ owner: owner,
94+ repo: repo,
95+ nextPage: page as String ?
96+ ) { [ weak self] result in
97+ guard let strongSelf = self else { return }
9398 switch result {
94- case . success( let nodes ) :
95- self ? . labels = nodes . compactMap {
99+ case . success( let payload ) :
100+ self ? . labels = payload . labels . compactMap {
96101 guard let node = $0 else { return nil }
97102 return RepositoryLabel ( color: node. color, name: node. name)
98103 } . sorted { $0. name < $1. name }
99- self ? . update ( animated: true )
100- case . failure ( let error) :
104+ strongSelf . update ( animated: true )
105+ case . error ( let error) :
101106 Squawk . show ( error: error)
102107 }
103- } )
108+ }
104109 }
105110
106111 // MARK: BaseListViewControllerDataSource
0 commit comments