Skip to content

Commit

Permalink
Merge branch 'develop' of github.com:sopt-makers/SOPT-Stamp-iOS into …
Browse files Browse the repository at this point in the history
…feature/sopt-makers#56-SentenceNicknameEditUI
  • Loading branch information
L-j-h-c committed Jan 2, 2023
2 parents 84d7532 + b25d7ed commit 9cb4ce5
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ public class MissionListVC: UIViewController {
private var cancelBag = CancelBag()

private var missionTypeMenuSelected = CurrentValueSubject<MissionListFetchType, Error>(.all)
private var viewWillAppear = PassthroughSubject<Void, Error>()

lazy var dataSource: UICollectionViewDiffableDataSource<MissionListSection, MissionListModel>! = nil

Expand Down Expand Up @@ -113,6 +114,7 @@ public class MissionListVC: UIViewController {

public override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.viewWillAppear.send(())
self.navigationController?.interactivePopGestureRecognizer?.delegate = self
}
}
Expand Down Expand Up @@ -198,7 +200,7 @@ extension MissionListVC {
private func bindViewModels() {

let input = MissionListViewModel.Input(viewDidLoad: Driver.just(()),
viewWillAppear: Driver.just(()),
viewWillAppear: viewWillAppear.asDriver(),
missionTypeSelected: missionTypeMenuSelected.asDriver())

let output = self.viewModel.transform(from: input, cancelBag: self.cancelBag)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,28 +54,34 @@ extension MissionListViewModel {
input.viewDidLoad
.withUnretained(self)
.sink { owner, _ in
switch owner.missionListsceneType {
case .ranking(_, _, let userId):
owner.useCase.fetchOtherUserMissionList(type: .all, userId: userId)
default:
owner.useCase.fetchMissionList(type: .all)
}
owner.fetchMissionList()
}.store(in: cancelBag)

input.viewWillAppear
.dropFirst()
.withUnretained(self)
.sink { owner, _ in
owner.fetchMissionList()
}.store(in: cancelBag)

input.missionTypeSelected
.withUnretained(self)
.sink { owner, fetchType in
switch owner.missionListsceneType {
case .ranking(_, _, let userId):
owner.useCase.fetchOtherUserMissionList(type: fetchType, userId: userId)
default:
owner.useCase.fetchMissionList(type: fetchType)
}
owner.useCase.fetchMissionList(type: fetchType)
}.store(in: cancelBag)

return output
}

private func fetchMissionList() {
switch self.missionListsceneType {
case .ranking(_, _, let userId):
self.useCase.fetchOtherUserMissionList(type: .all, userId: userId)
default:
self.useCase.fetchMissionList(type: .all)
}
}

private func bindOutput(output: Output, cancelBag: CancelBag) {
let fetchedMissionList = self.useCase.missionListModelsFetched

Expand Down

0 comments on commit 9cb4ce5

Please sign in to comment.