From 595375b68913636a1f2b93a11c6de811f529c7cc Mon Sep 17 00:00:00 2001 From: jjinwoong Date: Thu, 8 Dec 2022 21:00:43 +0900 Subject: [PATCH 1/3] =?UTF-8?q?[refactor]=20QuestViewHeader=EC=9D=98=20lab?= =?UTF-8?q?el=EC=9D=84=20private(set)=EC=9C=BC=EB=A1=9C=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DailyQuest/Presentation/Home/View/QuestViewHeader.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DailyQuest/DailyQuest/Presentation/Home/View/QuestViewHeader.swift b/DailyQuest/DailyQuest/Presentation/Home/View/QuestViewHeader.swift index f46c408..c6d1ead 100644 --- a/DailyQuest/DailyQuest/Presentation/Home/View/QuestViewHeader.swift +++ b/DailyQuest/DailyQuest/Presentation/Home/View/QuestViewHeader.swift @@ -16,9 +16,9 @@ final class QuestViewHeader: UIStackView { var buttonDidClick = PublishSubject() // MARK: - Components - private lazy var titleLabel: UILabel = { + private(set) lazy var titleLabel: UILabel = { let titleLabel = UILabel() - titleLabel.text = "Today Quest" + titleLabel.text = "Today Quests" titleLabel.textColor = .maxViolet titleLabel.font = UIFont.boldSystemFont(ofSize: 32) From cf4d1bb77c88556ba3995f5a94ba9eb06c780761 Mon Sep 17 00:00:00 2001 From: jjinwoong Date: Thu, 8 Dec 2022 21:01:08 +0900 Subject: [PATCH 2/3] =?UTF-8?q?[refactor]=20quest=20header=20label=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=EC=9D=84=20=EC=9C=84=ED=95=9C=20observable?= =?UTF-8?q?=EC=9D=84=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Home/ViewModel/HomeViewModel.swift | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/DailyQuest/DailyQuest/Presentation/Home/ViewModel/HomeViewModel.swift b/DailyQuest/DailyQuest/Presentation/Home/ViewModel/HomeViewModel.swift index 6fe84dd..22b895d 100644 --- a/DailyQuest/DailyQuest/Presentation/Home/ViewModel/HomeViewModel.swift +++ b/DailyQuest/DailyQuest/Presentation/Home/ViewModel/HomeViewModel.swift @@ -31,6 +31,7 @@ final class HomeViewModel { } struct Output { + let questHeaderLabel: Observable let data: Driver<[Quest]> let userData: Observable let questStatus: Driver<(Int, Int)> @@ -78,6 +79,11 @@ final class HomeViewModel { return !result.isEmpty ? owner.currentDate : nil } + let questHeaderLabel = input + .daySelected + .map(calculateRelative(_:)) + .asObservable() + let data = Observable .merge( updated, @@ -175,7 +181,8 @@ final class HomeViewModel { }) .disposed(by: disposeBag) - return Output(data: data, + return Output(questHeaderLabel: questHeaderLabel, + data: data, userData: userData, questStatus: questStatus, profileTapResult: profileTapResult, @@ -183,3 +190,17 @@ final class HomeViewModel { displayDays: displayDays) } } + +private extension HomeViewModel { + func calculateRelative(_ date: Date) -> String { + let today = Date() + + if today.startOfDay > date.startOfDay { + return "Previous Quests" + } else if today.startOfDay < date.startOfDay { + return "Upcomming Quests" + } else { + return "Today Quests" + } + } +} From 1f3d95d9446532cc1ce369ee866df9a69ebe5756 Mon Sep 17 00:00:00 2001 From: jjinwoong Date: Thu, 8 Dec 2022 21:01:23 +0900 Subject: [PATCH 3/3] =?UTF-8?q?[refactor]=20=EC=83=88=EB=A1=AD=EA=B2=8C=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=EB=90=9C=20output=EC=9D=84=20header=EC=99=80?= =?UTF-8?q?=20=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Home/ViewController/HomeViewController.swift | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/DailyQuest/DailyQuest/Presentation/Home/ViewController/HomeViewController.swift b/DailyQuest/DailyQuest/Presentation/Home/ViewController/HomeViewController.swift index cdd29bc..3253a6c 100644 --- a/DailyQuest/DailyQuest/Presentation/Home/ViewController/HomeViewController.swift +++ b/DailyQuest/DailyQuest/Presentation/Home/ViewController/HomeViewController.swift @@ -162,6 +162,7 @@ final class HomeViewController: UIViewController { disposeBag: disposableBag ) + bindToQuestViewHeader(with: output) bindToCalendarView(with: output) bindToQuestHeaderButton() bindToQuestView(with: output) @@ -169,6 +170,13 @@ final class HomeViewController: UIViewController { } + private func bindToQuestViewHeader(with output: HomeViewModel.Output) { + output + .questHeaderLabel + .bind(to: questViewHeader.titleLabel.rx.text) + .disposed(by: disposableBag) + } + private func bindToCalendarView(with output: HomeViewModel.Output) { output .displayDays