SectionReactor 0.2.1

SectionReactor 0.2.1

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Sep 2017
SwiftSwift Version 3.1
SPMSupports SPM

Maintained by Suyeol Jeon.


Downloads

Total199
Week137
Month199

Installs

Apps7
Apps WeekApps This Week 7
Test Targets1
Test WeekTests This week 1
powered by Segment

GitHub

Stars10
Watchers1
Forks0
Issues0
Contributors1
Pull Requests1

Code

Files3
LOCLines of Code 63


 
Depends on:
ReactorKit>= 0
RxDataSources>= 2.0.0
 

  • By
  • Suyeol Jeon

SectionReactor is a ReactorKit extension for managing table view and collection view sections with RxDataSources.

Getting Started

This is a draft. I have no idea how would I explain this concept 🤦‍♂️ It would be better to see the ArticleFeed example.

ArticleViewSection.swift

enum ArticleViewSection: SectionModelType {
  case article(ArticleSectionReactor)

  var items: [ArticleViewSection] {
    switch self {
    case let .article(sectionReactor):
      return sectionReactor.currentState.sectionItems
    }
  }
}

ArticleSectionReactor.swift

import SectionReactor

final class ArticleSectionItem: SectionReactor {
  struct State: SectionReactorState {
    var sectionItems: [ArticleSectionItem]
  }
}

ArticleListViewReactor.swift

final class ArticleListViewReactor: Reactor {
  struct State {
    var articleSectionReactors: [ArticleSectionReactor]
    var sections: [ArticleViewSection] {
      return self.articleSectionReactors.map(ArticleViewSection.article)
    }
  }

  func transform(state: Observable<State>) -> Observable<State> {
    return state.merge(sections: [
      { $0.articleSectionReactors },
    ])
  }
}

Dependencies

Installation

pod 'SectionReactor'

License

SectionReactor is under MIT license. See the LICENSE for more info.